整数値を含む Wicket テキストフィールドがあります
currentValueTextField = new TextField<IntParameter>("valueText", new PropertyModel<IntParameter>(model, "value"));
次のように、これにカスタムバリデータを添付しています
currentValueTextField.add(new IntegerValidator());
バリデータクラスは
class IntegerValidator extends AbstractValidator<IntParameter> {
private static final long serialVersionUID = 5899174401360212883L;
public IntegerValidator() {
}
@Override
public void onValidate(IValidatable<IntParameter> validatable) {
ValidationError error = new ValidationError();
if (model.getValue() == null) {
AttributeAppender redOutline = new AttributeAppender("style", new Model<String>("border-style:solid; border-color:#f86b5c; border-width: 3px"), ";");
currentValueTextField.add(redOutline);
currentValueTextField.getParent().getParent().add(redOutline);
validatable.error(error);
}
}
}
ただし、テキストフィールドに何も入力しないと、onValidate()
メソッドが呼び出されません。
この場合、null 値を確認するための推奨される方法は何ですか? 入力された値の範囲チェックも行いたいと思います。