java - @Size(min, max) 但不是必需的

标签 java spring hibernate-validator

您好,在我的 spring webapp 中,我有一个密码变量,我希望它至少为 0 个字符或多于 6 个且少于 20 个。我知道有注释:

 @Size(min=6, max=20)

但我不知道如何增加密码可以是 0 个字符的可能性。有人可以帮我解决这个问题吗?

最佳答案

鉴于评论,您可以使用 StringTrimmerEditor 将空字符串转换为 null,然后 @Size检查不会触发(null 在@Size 中被认为是有效的)。

在您的 Controller 中添加以下方法:

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}

请注意 StringTrimmerEditor还修剪来自空格的输入,如果您只想让一个属性受此编辑器影响,请使用 registerCustomEditor(Class<?> requiredType, String propertyPath, PropertyEditor propertyEditor) .

关于java - @Size(min, max) 但不是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550324/

相关文章:

Spring:new() 运算符和 Autowiring 在一起

java - 在执行 hibernate 查询时有条件地禁用 hibernate 验证

java - Spring : Why should I still use @RequestBody when my class is already annotated with @RestController?

java - 需要转义字符串中的 double 字符或一些特殊字符

java - 我如何使用 spring 框架监视(收听)我使用 @scheduled 安排的工作?

Spring SAML - 如何在 SP HTTP 请求中添加自定义字段?

validation - GWT 错误 : No source code is available for type org. hibernate.validator.constraints.impl.SizeValidatorForString

java - Spring Boot 2 Hibernate 5 @Embeddable 属性在 H2 中生成错误的字段大小(创建-删除)

java - 基于种子的伪随机序列发生器

java - NetBeans 默认 Jlist 将其更改为 arraylist