我在我的JSF托管bean中使用JSR303 bean验证注释来验证文本输入 . 以下是注释:
@Size(min=0, max=20, message = "Value cannot be more than 20 characters")
@Pattern(regexp = "[^|]", message = "Invalid entry. See field description.")
private String txt;
在字符串中找到管道字符时, @Pattern
注释会引发错误 . 但是当用户将该字段留空并单击“提交”时,也会抛出该错误 . 当字段为空时,为什么会发生这种情况?
1 回答
因为regexp
[^|]
只需要匹配一个字符 . 你应该使用量词:[^|]*
以下是一些测试: