Tôi có một TextField Wicket, trong đó có một giá trị IntegerLàm cách nào để kiểm tra giá trị null trong một Wicket Textfield?
currentValueTextField = new TextField<IntParameter>("valueText", new PropertyModel<IntParameter>(model, "value"));
Tôi gắn một validator tùy chỉnh này, như sau
currentValueTextField.add(new IntegerValidator());
Lớp validator là
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);
}
}
}
Tuy nhiên nếu tôi không nhập gì vào trường văn bản, phương thức onValidate()
của tôi sẽ không được gọi.
Cách được khuyến nghị để kiểm tra giá trị null trong trường hợp này là gì? Tôi cũng muốn kiểm tra phạm vi giá trị đã nhập.
Tôi không biết về Wicket nhưng trong khuôn khổ web khác mà tôi biết xác nhận không được gọi cho trống Trường văn bản. Một số cung cấp cờ bổ sung cho các thẻ của họ để kích hoạt/vô hiệu hóa các kiểm tra bắt buộc trong khi ở những người khác bạn có thể phải kiểm tra khi đưa các giá trị biểu mẫu vào mô hình (hoặc kiểm tra mô hình sau đó). – Thomas