Validation message not showing up
hdu Jul 30, 2010 12:07 PMWhen I enter the password in the following code, the validation message appears:
<s:decorate id="password" template="/layout/edit.xhtml"> <ui:define name="label">Password</ui:define> <a4j:outputPanel ajaxRendered="true"> <h:inputSecret id="passwordValue" value="#{passwordBean.newPassword}" valueChangeListener="#{passwordBean.validate}"> <a4j:support event="onkeyup" reRender="password, passwordValue" ajaxSingle="true"/> </h:inputSecret> </a4j:outputPanel> </s:decorate>
If I just add the testing
input to the field in the following, the error style and image appear but not the validation message:
<s:decorate id="password" template="/layout/edit.xhtml"> <ui:define name="label">Password</ui:define> <h:inputText value="testing" /> <a4j:outputPanel ajaxRendered="true"> <h:inputSecret id="passwordValue" value="#{passwordBean.newPassword}" valueChangeListener="#{passwordBean.validate}"> <a4j:support event="onkeyup" reRender="password, passwordValue" ajaxSingle="true"/> </h:inputSecret> </a4j:outputPanel> </s:decorate>
The template edit.xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib"> <div class="prop"> <s:label styleClass="name #{invalid?'errors':''}"> <ui:insert name="label"/> <s:span styleClass="required" rendered="#{required}">*</s:span> </s:label> <span class="value #{invalid?'errors':''}"> <s:validateAll> <ui:insert/> </s:validateAll> </span> <span class="error"> <h:graphicImage value="/img/error.gif" rendered="#{invalid}" styleClass="errors"/> <s:message styleClass="errors"/> </span> </div> </ui:composition>
The page bean
@Name("passwordBean") @Scope(ScopeType.CONVERSATION) public class PasswordBean implements Serializable { private String newPassword; // plus getters and setters public void validate(ValueChangeEvent e) { FacesMessages.instance().addToControlFromResourceBundle("passwordValue", "Validation failed"); } }
It works fine with the one password input, but I need to include other input elements in the s:decorate field. Any ideas what could be wrong?
Thanks,
hdu