【问题标题】:Pattern doesn't give correct result模式没有给出正确的结果
【发布时间】:2020-01-13 14:58:20
【问题描述】:
我的问题是我想使用 bean 验证,所以我在我的员工 bean 上使用:
@Pattern( regexp = "\.+",message="Name is not null") @Size(max=10,message = "Name is verylong")
private String name;
我想用模式检查字符串是否为空。问题是,如果字段长度> 10,提交表单时,它会给我错误。但如果它为空,它不会给我五个错误。谁能帮帮我?
【问题讨论】:
标签:
java
gwt
pattern-matching
bean-validation
【解决方案1】:
如果要验证该字段不能为空,还需要注解javax.validation.constraints.NotNull:
@Pattern( regexp = "\.+",message="Name is not null")
@Size(max=10,message = "Name is verylong")
@NotNull
private String name;
考虑如果您的字段被允许为空值,这将如何工作,但如果不是空值,它必须匹配特定的模式 - 您需要有某种方法来制作显式匹配空值的正则表达式(和大小,和其他注释也需要这样做)。
相反,空值不被认为需要通过内置验证注释进行检查 - 您的模式正在询问字符串是否为 empty(即“包含至少一个字符”),而不是null - 您可能只想改用 Size 的 min 值?