@Size和@Pattern注释在Spring MVC中不起作用

时间:2015-03-30 11:10:42

标签: spring spring-mvc

在WEB-INF中的lib文件夹中添加了以下jar:

  • 同学-1.0.0
  • javax.el-2.2.4
  • javax.el-API-2.2.4
  • jboss-logging-3.1.3.GA
  • validation-api-1.1.0.Final

我添加的代码是:

来自模型对象:

public class UserDetails {

    @Pattern(regexp="(^0-9}*") 
    private String userName;   

    @Size(min=2,max=10)
    private String firstName;    
    private String lastName;
    private String emailId;
    private ArrayList<String> accountType;
    private ArrayList<String> gender;

    @Size(min=2,max=10)
    private Long accountNo;

FromController类:

@RequestMapping(value = "/UserAccount.html", method = RequestMethod.POST)
public ModelAndView userAccountForm(
        @Valid @ModelAttribute("user") UserDetails user,
        BindingResult result) {

    if (result.hasErrors()) {
        ModelAndView model1 = new ModelAndView("LoginForm");
        return model1;
    }

    ModelAndView model1 = new ModelAndView("UserAccount");
    return model1;
}

我的调度程序servlet有

<mvc:annotation-driven/>

请告诉我如果我错过了任何基本的事情。

2 个答案:

答案 0 :(得分:4)

我通过将以下jar文件添加到我的库中来实现这一点。

hibernate-validator-5.1.3.Final

当我通过教程学习时,虽然提到了这个,但我还是错过了添加这个jar。

感谢大家的评论。

答案 1 :(得分:3)

@Pattern(regexp = "[a-zA-Z0-9_.]*")
private String userName;


@Size(min=2, max=30)
private Long accountNo;

@Size(min=2,max=10)
private String firstName;

@Size注释是正确的。

请检查@Pattern的使用方式。 POJO类是正确的。只需更改@Pattern注释用法即可。 另外,我分享了一些关于@Pattern注释使用的示例。

http://www.journaldev.com/634/java-regular-expression-tutorial-with-examples