2016-07-28 34 views
1

我有一个TextField,我打算添加一个StringLengthValidator以验证它如下。Vaadin StringLengthValidator allowNull参数不起作用

txtName.setRequired(false); 
    txtName.addValidator(new StringLengthValidator(
      "The title field must be at least 3 characters in length", 3, 75, true)); 

我想这个文本字段接受空/空值以及`长度

至少3个字符”,3,75

规则,所以我设置允许为空参数为真,但不起作用,我仍然需要输入至少3个字符,最多75个字符的文本值,如何解决这个问题?任何帮助都会被提升。`

+0

该文档提到allowNull已被弃用。你有没有试过field required = false? https://vaadin.com/api/7.6.7/com/vaadin/data/validator/StringLengthValidator.html#StringLengthValidator(java.lang.String,%20java.lang.Integer,%20java.lang.Integer,%20boolean ) –

回答

1

我可以重现你的问题,这对我来说似乎是一个错误。尽管我在文本字段上额外设置了setNullRepresentation("")StringLengthValidator被调用,空字符串""被验证,当然因为""长度为零而失败。

要解决您的问题,您可以派生验证器并覆盖isValidValue以接受空字符串。或者写你自己的验证器。