Мы переходим от JSF 1.2 к JSF2. Мы столкнулись с вопросом в validation.We использовании Apache MyFaces 2 и богатые лица 4.3 Ниже приведен код XHTML:Вопрос валидатора в JSF2
<h:form id="form">
<ui:include src="panel1.xhtml"/>
<h:commandButton id="btn1" value="Submit" action="#{bean.submit}"/>
</h:form>
panel1.xhtml содержит пользовательский компонент, как показано ниже:
<h:panelGrid columns="2">
<h:outputText value="Enter Phone"/>
<h:inputText id="compId" value="#{map['Phone']}" size="12" maxlength="20" required="true"
validator="#{validator.validatePhone}"/>
<!-- other components omitted -->
</h:panelGrid>
public void validatePhone(FacesContext arg0, UIComponent arg1, Object obj)
throws ValidatorException {
String phoneVal = (String) obj;
if(phoneVal .length() <5){
//rest of the code is omitted
}
}
Проблема заключается в том, что значение телефона не вводится (поддерживается пустым), и форма представляется, следующие наблюдения.
JSF 2: validator.validatePhone вызывается со значением OBJ объекта (в методе validatePhone) как нулевое
JSF 1.2: требуется = "истина" атрибут принимает в действие первый и validator.validatePhone вообще не вызывается все (если в поле «Телефон» нет значения), и отображаются ошибки .
Вопрос:
1) Почему validator.validatePhone вызывается для JSF 2, даже если нет никакого значения в поле Phone? 2) Почему происходит изменение поведения в JSF 1.2 и JSF 2 для вышеуказанного случая?
благодарит за help.Adding контекста-пары, как показан на выше работал точно так, как в JSF 1.2 – Atul
Добро пожаловать @Atul – kolossus