基于注解的SpringMVC验证框架的使用
博主以前写过一篇SpringMVC验证框架的常规使用方法,详情猛戳此处,但是在实际应用的开发中,比较常用的还是基于注解的使用方法。
使用注解的SpringMVC验证框架的使用主要可以分为以下三个步骤:
1:在JavaBean中配置校验类
@NotBlank(message = "用户名不能为空")
private String username;
@NotBlank(message = "密码不能为空")
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
这里请注意@NotNull,@NotBlank,@NotEmpty的区别
2:在Spring的配置文件中,配置验证框架
<mvc:annotation-driven validator="validator"/>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
</bean>
配置时需要hibernate-validator包的支持,注意导包
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.13.Final</version>
</dependency>
3:在控制层中对应的方法上使用@Validated和BindingResult,顺序不能颠倒,否则会出现异常(一个参数对应一个BindingResult,里面存储的是校验的错误信息)
@RequestMapping("login.mvc")
public String test(@Validated @ModelAttribute("user") User user, BindingResult br) {
if (br.hasErrors()) {
System.out.println("有错");
}
System.out.println(user.toString());
return "index";
}
4:在前端显示,显示方法有多种,博主比较喜欢这种显示方法
<sf:form action="login.mvc" method="post" modelAttribute="user">
username:<input title="username" type="text" autocomplete="off" name="username">
<sf:errors path="username"/>
<br><br>
password:<input title="password" type="password" name="password">
<sf:errors path="password"/>
<br>
<input type="submit">
</sf:form>
以上便是基于注解的SpringMVC验证框架全过程,如有错误,请提出,谢谢!