首页 > 代码库 > Spring MVC——数据检验步骤

Spring MVC——数据检验步骤

1. 搭建web工程

2. 导入jar包

spring-beans.jar、spring-context.jar、spring-core.jar、spring-expression.jar、spring-aop.jar、spring-web.jar、spring-webmvc.jar、


hibernate-validator-4.3.0.Final.jar、jboss-logging-3.1.0.CR2.jar、validation-api-1.0.0.GA.jar

添加依赖包: commons-logging.jar、aopalliance.jar

3.在spring-mvc.xml中配置校验器

<!-- 校验器 -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">

<!--Hibernate校验器-->
<property name="providerClass" value="http://www.mamicode.com/org.hibernate.validator.HibernateValidator"></property>

<!-- 指定错误信息配置文件:默认情况读取类路径classpath下的 ValidationMessages.properties-->
<property name="validationMessageSource" ref="messageSource"></property>

</bean>

<!--读取错误信息配置文件 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

<!-- 文件路径 -->
<property name="basenames">
<value>classpath:CustomerValidationMessages</value>

注意:在类路径下自定义的配置文件
</property>

<!-- 指定文件编码格式 -->
<property name="fileEncodings" value="http://www.mamicode.com/utf-8"></property>

<!-- 指定文件内容缓存时间,秒为单位 -->
<property name="cacheSeconds" value="http://www.mamicode.com/60"></property>
</bean>

4. 在spring-mvc.xml文件中,将校验器注入到适配器中

<!-- 处理器适配器、处理器映射器 -->
<mvc:annotation-driven validator="validator"></mvc:annotation-driven>

5. 添加校验规则
public class User {
//用户名不能为空
@NotEmpty(message="{user.username}")
public String username;

//密码长度必须在6-12之间
@Length(min=6,max=12,message="{user.password}")
public String password;

//必须符合正则表达式规则
@Email(regexp="^[_a-z0-9]+@([_a-z0-9]+\\.)+[a-z0-9]{2,3}$")
private String email;
}

8. 在spring-mvc.xml文件中,配置错误信息文件CustomerValidationMessages.properties

user.username = 用户名不能为空
user.password = 密码长度必须在6-12之间
user.email = 邮件格式不正确

9. 捕获错误信息
@Controller
public class UserController {

@RequestMapping("/insertUser")
public String insertUser(Model model,@Validated User user,BindingResult bindingResult,Integer uid)
{
if(bindingResult.hasErrors())
{
//获取所有的错误信息
List<ObjectError> errorList = bindingResult.getAllErrors();
for (ObjectError error : errorList) {
System.out.println(error.getDefaultMessage());
}

/*
* 数据回显
*/
//1.POJO类型会默认保存在request作用域中
//model.addAttribute("user", user);

//2.简单数据类型Integer、String、Double需手动保存
model.addAttribute("uid", uid);

//保存错误信息
model.addAttribute("errorMsg", errorList);
return "index";
}
else
{
return "main";
}
}

}

10.显示错误信息

11.测试
http://localhost:8088/springMvc_05_validation/index.jsp

 

Spring MVC——数据检验步骤