Vaadin TextBox:仅限数字和小数。

时间:2015-12-09 00:20:05

标签: vaadin

如果提交了除数字和/或小数之外的其他内容,如何让文本框给出错误?

2 个答案:

答案 0 :(得分:3)

您需要在文本字段中添加验证器。

textField.addValidator(new Validator());

没有验证器在Vaadin中检查值是否为数字,因此您需要创建自定义数字:

private class MyValidator implements Validator {
    @Override
    public void validate(Object value)
            throws InvalidValueException {
        if (!(value instanceof Integer &&
                (value instanceof Double)) {
            throw new InvalidValueException("The value is not a number");
        }     
    }
}

现在您可以将自定义验证器添加到您的字段中:

textField.addValidator(new MyValidator());

有关验证者here的更多信息。

答案 1 :(得分:0)

private class MyValidator implements Validator {
    @Override
    public void validate(Object value) throws InvalidValueException {
         try {
              // new Integer(text);
                new Double(value.toString());
            } catch (NumberFormatException e) {
              throw new InvalidValueException("The value is not a number");
            }
    }
}