若是要把表單裏的內容賦值到一個 struct 裏,除了用一個一個獲取再賦值外,beego 提供了經過另一個更便捷的方式,就是經過 struct 的字段名或 tag 與表單字段對應直接解析到 struct。html
首先看模板是怎麼提交的post
<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>
接下來寫structthis
type Cmsuser struct { Id int `form:"-"` Username string `form:"username"` Pwd string `form:"pwd"` }
這裏面有幾點必須注意指針
1)變量名稱的首字母必須大寫,go lang的規定code
2)其它orm
xx must be a struct pointer
的錯誤。form
標籤的值設置爲 -
這個時候寫好了Router就能夠提交了。htm
func (this *LoginController) Post() { u := Cmsuser{} if err := this.ParseForm(&u); err != nil { beego.Info(err) } else { //這個地方容易搞錯,記住是沒有錯誤的時候你就得到數據了。 this.Ctx.WriteString(u.Username + u.Pwd) } }