文档章节

Beego 的Contrller ParseForm的使用方法

SunnyGo
 SunnyGo
发布于 2016/05/12 16:03
字数 497
阅读 807
收藏 1

 

如果要把表单里的内容赋值到一个 struct 里,除了用一个一个获取再赋值外,beego 提供了通过另外一个更便捷的方式,就是通过 struct 的字段名或 tag 与表单字段对应直接解析到 struct。

 

首先看模板是怎么提交的

 

<form id="user" action="/login" method="post">
    <label name="lab_username">username:</label>
    <input type="text" name="username" value="" />
    <label name="lab_pwd">password:</label><input type="password" name="pwd" value="" />
    <input type="submit" name="login" value="Login" />
</form>

 

接下来写struct

 

type Cmsuser struct {
    Id         int    `form:"-"`
    Username string `form:"username"`
    Pwd      string `form:"pwd"`
}

这里面有几点必须注意

1)变量名称的首字母必须大写,go lang的规定

2)其它

  • 定义 struct 时,字段名后如果有 form 这个 tag,则会以把 form 表单里的 name 和 tag 的名称一样的字段赋值给这个字段,否则就会把 form 表单里与字段名一样的表单内容赋值给这个字段。如上面例子中,会把表单中的 username 和 age 分别赋值给 user 里的 Name 和 Age 字段,而 Email 里的内容则会赋给 Email 这个字段。
  • 调用 Controller ParseForm 这个方法的时候,传入的参数必须为一个 struct 的指针,否则对 struct 的赋值不会成功并返回xx must be a struct pointer 的错误。
  • 如果要忽略一个字段,有两种办法,一是:字段名小写开头,二是:form 标签的值设置为 -

 

这个时候写好了Router就可以提交了。

func (this *LoginController) Post() {

u := Cmsuser{}
      if err := this.ParseForm(&u); err != nil {

        beego.Info(err)

    } else { //这个地方容易搞错,记住是没有错误的时候你就获得数据了。

       this.Ctx.WriteString(u.Username + u.Pwd)
    }

}

 

© 著作权归作者所有

共有 人打赏支持
SunnyGo
粉丝 7
博文 28
码字总数 8249
作品 0
东城
技术主管
私信 提问
直接解析到 struct

如果要把表单里的内容赋值到一个 struct 里,除了用上面的方法一个一个获取再赋值外,beego 提供了通过另外一个更便捷的方式,就是通过 struct 的字段名或 tag 与表单字段对应直接解析到 st...

浩爷
01/16
0
0
beego 1.6.0 版本发布,Go 应用框架

距离上一次发布1.5版本已经半年了,这半年里面我们改进了很多,其实中间又想要发布一个小版本的,但是后来还是想想就改的彻底一点,所以这次改动相当多,中间又因为一些兼容性的问题所以特地...

astaxie
2016/01/18
9.6K
55
beego 1.4.3 版本发布,Go 应用框架

这个版本憋了好久才发布,实在对不起各位亲,我持续改进的心都在,但是因为换工作事情比较多,实在抱歉。 新功能: ORM数据库创建和修改的时候支持default设置 改进日志文件行数统计 sesesion...

astaxie
2015/03/01
4.4K
32
beego 1.1.1 版本发布,Go 应用框架

这个版本主要是一些bug的修复和增加新功能 1. session模块file引擎无法删除文件,不断刷新引起的文件读取失败问题 2. 文件缓存无法读取struct,改进gob自动化注册 3. session模块增加新引擎cou...

astaxie
2014/03/12
1K
5
beego 阿里大鱼短信验证码接口

工作中需要用到短信登录注册验证,所以自己用beego写了个阿里大鱼的短信验证码接口 一、配置,beego的配置文件 conf/app.conf,这些注册阿里大鱼帐号就会分配给你,注册地址:http://www.al...

别人说我名字很长
2016/06/28
584
1

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部