<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Go Revel - Parameters(參數綁定)

      ##參數綁定 Revel框架會盡可能的將提交參數轉換為期望的Go類型。這個從一個字符串提交參數轉換為另一個類型被稱為`數據綁定` 。 ##參數 所有的請求參數被存放在一個`Params`中,他包括: URL路徑參數 URL查詢參數 表單值(或Multipart) 文件上傳 這是`Params`的定義: type Params struct { url.Values Files map[string][]*multipart.FileHeader } 嵌入的`url.Values`提供了對簡單值的訪問,但開發者會發現非字符的值使用revel的數據綁定機制也非常容易。 ## Action參數 `Params`中的參數可以當作方法參數被Action接收。例如: func (c AppController) Action(name string, ids []int, user User, img []byte) revel.Result { ... } 在調用之前,revel會使用`Binder`綁定器將提交的參數按名稱轉換為期望類型,如果轉換不成功,將會用期望類型的0值代替。 ##Binder綁定器 綁定一個提交參數至期望的類型。 func (c SomeController) Action() revel.Result { var ids []int c.Params.Bind(&ids, "ids") ... } 以下的數據類型支持開箱轉換: 任意寬度的int整數 Bool類型 任意支持類型的指針 任意支持類型的切片 結構 time.Time 類型的日期與時間 *os.File, []byte, io.Reader, io.ReadSeeker 文件上傳用到的 ##Booleans 字符串值`true`, `on`, 與 `1` 都會被轉為`true`,否則被轉為`false` ##Slices 對于slices切片有兩種支持: ordered 有序 與 unordered 無序. 有序: ?ids[0]=1 &ids[1]=2 &ids[3]=4 slice中的數據 []int{1, 2, 0, 4} 無序: ?ids[]=1 &ids[]=2 &ids[]=3 slice中的數據 []int{1, 2, 3} 只有struct切片將會使用有序切片 ?user[0].Id=1 &user[0].Name=rob &user[1].Id=2 &user[1].Name=jenny ##Structs struct使用`.`符號來進行綁定 ?user.Id=1 &user.Name=rob &user.Friends[]=2 &user.Friends[]=3 &user.Father.Id=5 &user.Father.Name=Hermes 將會綁定為: type User struct { Id int Name string Friends []int Father User } 只有可導出字段才能被綁定。 ##日期與時間 revel內置了SQL標準時間字符串格式`[“2006-01-02”, “2006-01-02 15:04”]` 可以用如下方法添加其他的時間格式: func init() { revel.TimeFormats = append(revel.TimeFormats, "01/02/2006") } ##文件上傳 上傳的文件可以被綁定為以下任意一種類型: *os.File []byte io.Reader io.ReadSeeker 上傳使用Go的`multipart`來處理。上傳的數據首先被保存在內存中,當大小超過10MB(默認)時,會保存至臨時文件。 當綁定為`os.File`類型時,revel會默認將上傳的文件存儲至臨時文件,這樣相比其他類型,效率比較低。 ##自定義 Binders 創建自定義Binder綁定器,只需要實現`binder`接口并且注冊。 func myBinder(params Params, name string, typ reflect.Type) reflect.Value { ... } func init() { revel.TypeBinders[reflect.TypeOf(MyType{})] = myBinder }

      posted on 2013-08-19 01:38  黑暗伯爵  閱讀(1993)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 久久午夜无码免费| 蜜臀av一区二区三区在线| 蜜桃av无码免费看永久| 国产又爽又黄又爽又刺激| 一女被多男玩喷潮视频| 国产精品成人午夜久久| 日韩国产精品区一区二区| 人妻内射视频麻豆| 国产成人一区二区三区免费| 久久精品久久黄色片看看| 中文字幕亚洲制服在线看| 海林市| 亚洲国产欧美在线人成| 国产高清在线不卡一区| 涞水县| 中文字幕乱码熟妇五十中出| 亚洲一本二区偷拍精品| 97超级碰碰碰碰久久久久| 国产一二三四区中| 日本一本无道码日韩精品| 疯狂做受xxxx高潮欧美日本| 日本丶国产丶欧美色综合| 亚洲狠狠爱一区二区三区| 午夜DY888国产精品影院| xxxxbbbb欧美残疾人| 国産精品久久久久久久| 男人狂桶女人高潮嗷嗷| 国产午夜福利在线视频| 久久99精品国产麻豆宅宅| 777奇米四色成人影视色区| 宽城| 国产精品视频午夜福利| 九九在线精品国产| 国产精品久久久久久久久久| 国产亚洲真人做受在线观看| ww污污污网站在线看com| 国产日韩精品一区二区在线观看播放| 精品无人区卡一卡二卡三乱码| 人人妻人人做人人爽夜欢视频| 成人精品老熟妇一区二区| 日韩幕无线码一区中文|