一、前言
SpringMVC是目前主流的Web MVC框架之一。
如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html
拦截器是每个Web框架必备的功能,也是个老生常谈的主题了。
本文将分析SpringMVC的拦截器功能是如何设计的,让读者了解该功能设计的原理。
二、示例
Spring MVC本身没有数据校验的功能,它使用Hibernate的校验框架来完成。
1.导入pom节点
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.4.1.Final</version> </dependency>
2.编辑UserInfo实体类
public class UserInfo { @NotNu1l(message="编号不能为空") private Integer user_ id; @NotNull @Length(min = 2,max = 8,message = "用户名不能少于2位大于8位" ) private String user. name; @Email(message = "邮箱格式不正确") private String user. email; @Pattern(regexp = "" ,message = "手机号格式不正切") private String user. phone; private String user_ address; @Pattern(regexp =“" ,message =” 身份证号不正确") private String user. cardCode; //身份证号 pub1ic Integer getUser_ id() { return user_ id; }
3.编写jsp页面
<form action=" /my/validate" method="post"> 编号: <input type="text" name="user. id"/> <br/> 姓名: <input type= "text" name="user. name"/> <br/> 邮箱: <input type="text" name="user. email"/> <br/> 手机号: <input type="text" name="user phone"/> <br/> 地址: <input type="text" name="user. address"/> <br/> 身份证号:<input type="text" name="user cardCode"/> <br/> <input type="submit" value=" 提交" /> </form>
4.编写validate进行数据的效验
@RequestMapping("/validate") public String validate(@Valid UserInfo info, BindingResult bindingResult){ //如果有异常信息 if (bindingResult . hasErrors()) { //获取异常信息对象 List<0bjectError> errors = bindingResult . getAllErrors(); //将异常信息输出 for (ObjectError error : errors) { System. out .println(error . getDefaultMessage()); } System. out . print1n(info. getUser_ email()); return "index" ; }