Revel 参数绑定


当前第2页 返回上一页

注意: 只有有序切片可以绑定到一个 []Struct:

?user[0].Id=1
&user[0].Name=rob
&user[1].Id=2
&user[1].Name=jenny

Struct

Struct简单的使用一个 . 进行绑定:

?user.Id=1
&user.Name=rob
&user.Friends[]=2
&user.Friends[]=3
&user.Father.Id=5
&user.Father.Name=Hermes

绑定到下面的struct类型:

type User struct {
    Id int
    Name string
    Friends []int
    Father User
}

注意: struct中的字段必须是导出的(首字母大写)。

Date / Time

内置的 SQL 标准时间格式 [“2006-01-02”, “2006-01-02 15:04”]

使用 Revel官方模式 简单的添加时间格式到 TimeFormats 变量:

func init() {
    revel.TimeFormats = append(revel.TimeFormats, "01/02/2006")
}

文件上传

文件上传参数可以绑定到以下几种类型:

  • *os.File
  • []byte
  • io.Reader
  • io.ReadSeeker

它是 Go的 multipart 包 的一个包装器. 文件保存在内存中,如果文件大小超过10MB(默认值), 就会被保存到一个临时文件中。

注意: 绑定 os.File类型,会保存到临时文件 (如果没有的话),所以效率低。

自定义绑定器

应用程序可以定义绑定器。

自定义绑定器需要实现 binder 接口并注册自定义类型:

var myBinder = revel.Binder{
    Bind: func(params *revel.Params, name string, typ reflect.Type) reflect.Value {...},
    Unbind: func(output map[string]string, name string, val interface{}) {...},
}

func init() {
    revel.TypeBinders[reflect.TypeOf(MyType{})] = myBinder

标签:Revel

返回前面的内容

相关阅读 >>

Revel 概念

Revel 介绍

Revel 计划任务

Revel 测试

Revel 控制器概要

Revel 配置文件app.conf

Revel 拦截器

Revel results

Revel 项目结构

Revel 过滤器

更多相关阅读请进入《Revel》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...