SpringMVC数据校验
数据校验
1. 导入相应的校验jar包
- @NotNull:不能为null,但可以为空字符串
- @NotEmpty:不能为null,并且长度必须大于0
- @NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
2. 写jsp页面
<form action="/SpringMVCday2/register" method="post">
名称:<input type="text" name="name"/>
<span><font color="red">${name}</font></span><br/>
密码:<input type="password" name="password"/>
<span><font color="red">${password}</font></span><br/>
年龄:<input type="text" name="age"/>
<span><font color="red">${age}</font></span><br/>
邮箱:<input type="text" name="email"/>
<span><font color="red">${email}</font></span><br/>
描述:<textarea name="description" rows="3" cols="10"></textarea>
<span><font color="red">${description}</font></span><br/>
<input type="submit" value="提交">
</form>
3.为对象属性附上数据校验规则
//校验要求:名字不能为空,警告信息“名称不能为空”
@NotEmpty(message="名称不能为空")
private String name;//姓名
//校验要求:密码必须为9位,只能包含字母数字和“_”,警告信息“密码长度必须为九位,不能包含符号”
@Pattern(regexp="^[a-zA-Z0-9_]{9,9}$",message="密码长度必须为九位,不能包含符号")
private String password;//密码
//校验要求:年龄输入内容不能为空,要求年龄在1至120之间,警告信息“年龄不能为空”和“年龄在1至120之间”
@Range(min=1,max=120,message="年龄在1至120之间")
@NotNull(message="年龄不能为空")
private Integer age;//年龄
//校验要求:邮箱不能为空,邮箱要是正确的格式,警告信息“邮箱不能为空”和“不是正确的电子邮件格式”
@NotNull(message="邮箱不能为空")
@Pattern(regexp="^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$",message="不是正确的电子邮件格式")
private String email;//电子邮件
//校验要求:个人描述的内容应在15到30个字符之间,警告信息“个人描述在15个字符到30个字符之间”
@Pattern(regexp="^.{15,30}$",message="个人描述在15个字符到30个字符之间")
private String description;//个人描述
4. SpringMVC.xml增加数据校验配置
<!-- 数据校验 -->
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass"
value="org.hibernate.validator.HibernateValidator" />
</bean>
<!-- 自动 -->
<mvc:annotation-driven validator="validator" />
5.书写controller
@RequestMapping("/register")
public ModelAndView register(@Valid Person person,BindingResult bindingResult) {
ModelAndView modelAndView=new ModelAndView();
//数据不合法则
if(bindingResult.hasErrors()) {
List<FieldError> errorsList=bindingResult.getFieldErrors();//获取所有的不合法
for (FieldError fieldError : errorsList) {
modelAndView.addObject(fieldError.getField(), fieldError.getDefaultMessage());
}
modelAndView.setViewName("Register");
} else { modelAndView.setViewName("RegisterSeccess"); }
return modelAndView;
}