咱們常常須要獲取用戶傳遞的數據,包括 Get、POST 等方式的請求,beego 裏面會自動解析這些數據,你能夠經過以下方式獲取數據:html
使用例子以下:json
func (this *MainController) Post() { jsoninfo := this.GetString("jsoninfo") if jsoninfo == "" { this.Ctx.WriteString("jsoninfo is empty") return } }
若是你須要的數據多是其餘類型的,例如是 int 類型而不是 int64,那麼你須要這樣處理:mvc
func (this *MainController) Post() { id := this.Input().Get("id") intid, err := strconv.Atoi(id) }
更多其餘的 request 的信息,用戶能夠經過 this.Ctx.Request
獲取信息,關於該對象的屬性和方法參考手冊Request。this
若是要把表單裏的內容賦值到一個 struct 裏,除了用上面的方法一個一個獲取再賦值外,beego 提供了經過另一個更便捷的方式,就是經過 struct 的字段名或 tag 與表單字段對應直接解析到 struct。指針
定義struct:code
type user struct { Id int `form:"-"` Name interface{} `form:"username"` //對應表單中的name值,字段名首字母也必須大寫,不然沒法解析該參數的值 Age int `form:"age"` //對應表單中的name值,若是不寫將沒法解析該參數的值 Email string }
表單:orm
<form id="user"> 名字:<input name="username" type="text" /> 年齡:<input name="age" type="text" /> 郵箱:<input name="Email" type="text" /> <input type="submit" value="提交" /> </form>
Controller 裏解析:htm
func (this *MainController) Post() { u := user{} if err := this.ParseForm(&u); err != nil { //handle error } }
注意:對象
xx must be a struct pointer
的錯誤。form
標籤的值設置爲 -