springmvc之数据验证器
导入包
jsp配置
<form action="验证器控制器" method="post">
id<input type="text" name="id"/></br>${idError }</br>//${}用于回显验证器传过来的错误提示
age<input type="text" name="age"/></br>${ageError }</br>
name<input type="text" name="name"/></br>${nameError }</br>
<input type="submit" value="提交"/>
</form>
springmvc.xml配置
<context:component-scan base-package="com.controller"></context:component-scan>
<!-- 验证器 -->
<bean id="myValidator" class=" org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
</bean>
<!--自启动验证器-->
<mvc:annotation-driven validator="myValidator"/>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- <property name="prefix" value="/WEB-INF/"></property> -->
<property name="suffix" value=".jsp"></property>
</bean>
POJO类
public class Teacher {
@Min(value=0,message="最小不能小于0")
@Max(value=10000,message="最大不能超过100")
private int id;
@NotEmpty(message="名字不能为空")
@Size(min=3,max=6,message="名字长度不在3-6之间")
private String name;
@Min(value=0,message="最小不能小于0")
@Max(value=10000,message="最大不能超过10000")
private double age;
//get&&set&&toString.........
}
控制器
@Controller
@RequestMapping("/vali")
public class ValidationController {
@RequestMapping("/some.do")
public ModelAndView some(@Validated Teacher teacher,BindingResult br){//BindingResult用于获取验证参数,@Validated要验证得对象,并且不能放在String和基本参数前
ModelAndView mv = new ModelAndView();
mv.addObject("teacher",teacher);
List<ObjectError> errors = br.getAllErrors();//获取验证对象的所有错误信息
if(errors.size()>0){//判断验证得对象是否错误
FieldError nameError = br.getFieldError("name");//通过BindingResult获取到我们验证的对象
FieldError ageError = br.getFieldError("age");//通过BindingResult获取到我们验证的对象
FieldError idError = br.getFieldError("id");//通过BindingResult获取到我们验证的对象
if(nameError!=null){
mv.addObject("nameError", nameError.getDefaultMessage());//将错误的信息写入到nameError中用于回显
}else if(idError!=null)
mv.addObject("idError", idError.getDefaultMessage());
else if(ageError!=null)
mv.addObject("ageError", ageError.getDefaultMessage());
mv.setViewName("/validator");
return mv;
}
mv.setViewName("/welcome");
return mv;
}
}
可用于pojo类上进行数据验证得格式