0
我通过JSF创建了一个DB驱动窗体。根据DB值,一个字段可能是强制性的,并且可能有最大数量的字符。这些要求彼此独立。一个字段可以是强制性的,没有最大长度或者不是强制性的,但仍然具有最大长度。LengthValidator没有为非必需字段触发
HtmlInputTextarea input = new HtmlInputTextarea();
if(validation != null && validation != ""){
LengthValidator lengthVal = new LengthValidator();
lengthVal.setMaximum(Integer.parseInt(validation));
input.setValidatorMessage("Please enter a valid number of characters");
input.addValidator(lengthVal);
}
验证是允许的最大字符数。在日志中,我可以看到对于必要的字段,验证显示正确的值。但是当我提交表单时,lengthvalidator只会在我认为是强制性的字段上触发。以下是必填字段代码:
input.setRequired(true);
input.setRequiredMessage("Please enter a value for this field.");
input.setImmediate(true);
HtmlMessage message = new HtmlMessage();
message.setFor(inputId);
message.setStyleClass("errorMessage");
div.getChildren().add(input);
div.getChildren().add(message);
任何帮助表示赞赏。