【问题标题】:LengthValidator not firing for non-mandatory fieldsLengthValidator 未针对非必填字段触发
【发布时间】:2013-12-10 13:12:54
【问题描述】:

我已经通过 JSF 创建了一个 DB 驱动的表单。根据 DB 值,一个字段可能是必需的,并且它可能具有最大字符数。这些要求是相互独立的。字段可以是强制的,没有最大长度,也可以不是强制的,但仍然有最大长度。

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);
}

validation 是允许的最大字符数。在日志中,我可以看到对于必要的字段,该验证显示了正确的值。但是当我提交表单时,长度验证器只会在我认为是强制性的字段上触发。以下是必填字段代码:

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);

感谢任何帮助。

【问题讨论】:

    标签: jsf jsf-2 primefaces validation


    【解决方案1】:

    您在哪里添加验证器?

    input.addValidator(new YourValidator());
    

    添加这个,验证将始终被触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2012-05-23
      • 2013-04-18
      • 2019-02-07
      • 1970-01-01
      相关资源
      最近更新 更多