一、SpringMVC介绍之Validation
对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证,对于不合格的数据信息SpringMVC会把它保存在错误对象中,这些错误信息我们也可以通过SpringMVC提供的标签在前端页面上进行展示。
二、JSR-303原生支持的限制有如下几种:
限制 | 说明 |
限制只能为null | |
限制必须不为null | |
@AssertFalse | 限制必须为false |
@AssertTrue | 限制必须为true |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Future | 限制必须是一个将来的日期 |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Past | 限制必须是一个过去的日期 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间 |
三、用validation来提示错误信息的过程:
1、声明NotEmpty.java和NotEmptyValidator.java两个类,2、在UserB中对需要进行条件限制的变量进行设置, 3、在lib中导入相应的包 validation-api-1.1.0.Final.jar4、在src中添加:ValidationMessages.properties
5、在Controller中
public String updateyonghu(HttpServletRequest req,@Valid @ModelAttribute("UserB") UserB UserB, BindingResult results,Model model) throws SQLException {
if(results.hasErrors()){
//results表示需要提示错误信息的变量,当输入内容与要求的内容不同时就会提示出错。
log.info("内容验证出错"); //log是在当出现错误时在后台用来显示的。
model.addAttribute("message", "密码或密码不能为空!");
UserB result=helloWorldService.selectnameid(UserB);
model.addAttribute("UserB",result);
return "update";
}