code
controller
package controllers
import (
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/validation"
)
type ValidController struct {
beego.Controller
}
type User struct {
// 前端的uname首字母是小写的 需要指定
Uname string `form:"uname" valid:"Required"`
Pwd string `form:"pwd" valid:"Required"`
}
// 关闭ValidController的xsrf保护
func (this *ValidController) Prepare() {
this.EnableXSRF = false
}
func (this *ValidController)Get() {
this.TplName = "validate.html"
}
func (this *ValidController)Post() {
// 把前端form表单的数据解析到自己定义的结构体中
var user User
err := this.ParseForm(&user)
if err != nil {
fmt.Println(err)
return
}
// 校验数据
valid := validation.Validation{}
// 修改默认 required 的字段提示"Required": "Can not be empty",为 "Required": "数据不能为空"
var msg = map[string]string{
"Required": "数据不能为空",
}
validation.SetDefaultMessage(msg)
// structTag 校验
b, err1 := valid.Valid(&user)
if err1 != nil {
fmt.Println(err1)
return
}
if !b {
for _, v := range valid.Errors {
fmt.Println(v.Key)
fmt.Println(v.Message)
}
}
this.TplName = "validate.html"
}