- 3
- 0
- 约1.4万字
- 约 11页
- 2017-03-08 发布于广东
- 举报
play框架手-05. HTTP数据验证
05.用play验证http数据
验证确保了某些指定的需求能够获得正确的值。一般用于在存入数据库前对数据进行验证或表单验证。
在play里验证如何进行的?
每个请求都有他自己的Validation 验证 对象和相应的错误集合。有以下三种方式来定义验证。
在一个控制器方法,可以直接调用控制器的validation属性的方法。也可使用play.data.validation.Validation类的静态方法来访问API子集。
在控制器的方法参数上使用注释声明来进行验证。
为一个action方法的POJO参数添加@Valid注释来验证POJO属性。
验证对象负责维护play.data.validation.Error对象集合。每个error都有两个属性:
key:用于确定是哪个元素导致的错误。当play发生错误时,key值可以任意设置,它遵循java变量默认命名约定。
message:其内容包含了错误的文本描述。message可以是纯文本消息,也可以是key的消息绑定(特别是国际化支持)。
下面我们使用第一种方式来验证一个简单的http参数:
public static void hello String name validation.required name ; … 此代码用于检测name变量是否正确设置。如果不正确,相应的错误消息将会增加到当前错误集合里。
如果需要,可以为每一个需要验证的变更重复这个操作:
public static void hello String name, Integer age validation.required name ; validation.required age ; validation.min age, 0 ; … 验证的错误消息
最后我们可以检索出错误信息并显示出来:
public static void hello String name, Integer age validation.required name ; validation.required age ; validation.min age, 0 ; if validation.hasErrors for Error error : validation.errors System.out.println error.message ; 假如name和age都为null,这时将显示:
Required
Required
这是因为在$PLAY_HOME/resources/messages里设置的默认消息如下:
validation.required Required
可通过以下三种方式定制验证消息:
重写应用程序的messages文件,对其中的消息进行重新定义。
提供一个定制消息作为附加的验证参数。
为局部消息提供一个消息key作为附加的验证参数。
Localised validation messages 局部验证消息
最简单的方式就是重写messages文件内容:
validation.required Please enter a value
也可提供其他语言的区位,详见Internationalization。
验证消息参数
在消息里为错误key使用占位符:
validation.required %s is required
输出为:
name is required
age is required
缺点:当超过一个必须字体验证时(使用validation.requied age ),play会发生不能确定当前的参数名称语法错误。在这种情况下,就必须直接指定域名称,比如:validation.required age, age 。
错误key默认就是参数名称。比如在hello action里的name参数可以限定如下:
name Customer name
输出为:
Customer name is required
age is required
也可使用error.message String key 方法重载错误key:
Error error validation.required name .error;
if error ! null System.out.println error.message Customer name ; 许多内建的验证定义附加消息参数都适用于验证参数。比如,match验证为指定的正则表达式定义了第2个字符串参数,这与%s占位符不同:
validation.match Must match %2$s
与此相似,range验证定义了两个附加的数字参数2和3:
validation.range Not in the range %2$d thr
您可能关注的文档
最近下载
- 马工程-中国古代文学史(第二版)上册第一编先秦文学全套PPT课件-50109.pptx
- 58同城加盟合同范本.docx VIP
- 幽默卡通动漫笑点设计方法.docx VIP
- 爆款AI漫剧教学手册.pdf
- 2025年河北省高职单招中职高考语文试题真题(精校打印版).pdf VIP
- 七至九年级部编人教版语文古诗词合集.pdf VIP
- 行星式球磨机立式-FOCUCY弗卡斯.PDF VIP
- 贵州省六校联考2025届高三下学期3月高考实用性联考(四)英语试卷(含答案).docx VIP
- 颈椎病的中医护理课件.pptx VIP
- 原调正谱G小小蝴蝶la farfalletta钢琴伴奏高清打印版.pdf VIP
原创力文档

文档评论(0)