如何在非必填字段JSR 303上使用@Pattern

Erh*_*mir 12 java validation spring-mvc bean-validation

如何@Pattern在非强制表单字段上使用约束?

@Pattern(regexp="...")
private String something;
Run Code Online (Sandbox Code Playgroud)

一旦我提交表单,我就会得到预期的验证错误,但是用户可能会将该字段留空,因为这不是必填字段.

PS:我可以编写自己的约束注释.但是,我只想问一种更简单的方法来组合注释或添加注释属性.JSR303实现是hibernate-validator.

Bal*_*usC 7

只需设置它null而不是空字符串.由于空HTML输入字段默认提交为空字符串作为HTTP请求参数,因此您需要让MVC框架将空提交值解释为null.这是JSF容易被做<context-param>web.xml.但是,既然你正在使用Spring MVC并且我没有这样做,我在这里搜索了一下,发现这个答案可能有用.