2013-11-25 13 views
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); 

任何幫助表示讚賞。

回答

0

你在哪裏添加驗證器?

input.addValidator(new YourValidator()); 

添加此,驗證將始終被激發。