Revel 自带参数验证功能:
示例应用程序提供了一些深入理解参数验证的例子。
下面演示使用内联错误消息验证字段
func (c MyApp) SaveUser(username string) revel.Result {
// Username (required) 至少 4 - 15 个字符.
c.Validation.Required(username)
c.Validation.MaxSize(username, 15)
c.Validation.MinSize(username, 4)
c.Validation.Match(username, regexp.MustCompile("^\\w*$"))
if c.Validation.HasErrors() {
// 在flash上下文中保存验证错误并重定向
c.Validation.Keep()
c.FlashParams()
return c.Redirect(Hotels.Settings)
}
// All the data checked out!
...
}
username
字段验证条件 (Required必填, MinSize最小长度, MaxSize最大长度, Match匹配一个正则表达式).Validation.HasErrors()
如果验证没有通过,返回 trueValidation.Keep()
告诉 Revel 序列化 验证错误消息到 Flash cookie中.Hotels.Settings 方法渲染一个模板:
{{/* app/views/Hotels/Settings.html */}}
...
{{if .errors}}Please fix errors marked below!{{end}}
...
Username:
{{.errors.username.Message}}
它做了三件事:
errors
map 中是否存在key为 username
的错误字段.username
的字段值注意:模板函数 field 使用了验证错误框架,使模板的编写变得更加方便。
如果错误消息都显示在一个地方,模板就变得简单了 (比如,放到页面顶部的一个红色的盒子中.)
下面的例子与上面有两个不同:
Message
,而不是使用验证函数默认的错误信息代码如下:
func (c MyApp) SaveUser(username string) revel.Result {
// Username (必填) 至少 4 - 15 字符.
c.Validation.Required(username).Message("Please enter a username")
c.Validation.MaxSize(username, 15).Message("Username must be at most 15 characters long")
c.Validation.MinSize(username, 4).Message("Username must be at least 4 characters long")
c.Validation.Match(username, regexp.MustCompile("^\\w*$")).Message("Username must be all letters")
if c.Validation.HasErrors() {
// 保存错误信息到 flash 上下文中并重定向
c.Validation.Keep()
c.FlashParams()
return c.Redirect(Hotels.Settings)
}
// All the data checked out!
...
}
模板如下:
{{/* app/views/Hotels/Settings.html */}}
...
{{if .errors}}
{{range .errors}}
- {{.Message}}
{{end}}
{{end}}
...
网站题目:创新互联Revel教程:Revel参数验证
URL地址:http://www.mswzjz.cn/qtweb/news12/390362.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能