検証するユーザー名があるとします。この場合、検証が失敗し、エラー メッセージが表示されたときに、ユーザー名 outputText とユーザー名 inputText フィールドを赤色で表示する必要があります。
検証が失敗した場合にすべてのフィールドが影響を受けるように、これらすべてをパネルグループにバインドしようとしました。しかし、単に panelgroup を置くだけでは機能しません。
私のバッキング Bean バリデーター
public void emailValidate(FacesContext context,
UIComponent componentToValidate,
Object value)
throws ValidatorException {
String email = value.toString();
if (!Validator.isEmailAddress(email))
{
FacesMessage message =
new FacesMessage(FacesMessage.SEVERITY_ERROR,"Email","Please enter valid email address");
throw new ValidatorException(message);
}
}
私のJSF
<h:panelGroup>
<h:outputText value="Email"/>
<h:message for="emailInput/>
<h:inputText id="emailInput" value="#{mybean.email}" validator="#{mybean.emailValidate}"/>
</h:panelGroup>