There is no way to do it globally but you can use a phase listener: import java.util.Iterator; | | import javax.faces.application.FacesMessage; | import javax.faces.component.UIComponent; | import javax.faces.component.UIViewRoot; | import javax.faces.context.FacesContext; | import javax.faces.event.PhaseEvent; | import javax.faces.event.PhaseId; | import javax.faces.event.PhaseListener; | | /** | * Example messages.properties entries: | * javax.faces.validator.LengthValidator.MAXIMUM="[fieldLabel]" value is greater than allowable maximum of {0} characters. | * javax.faces.validator.LengthValidator.MINIMUM="[fieldLabel]" value must contain at least {0} characters. | */ | | @SuppressWarnings("serial") | public class MessageListener implements PhaseListener { | | public PhaseId getPhaseId() { | return PhaseId.RENDER_RESPONSE; | } | | public void beforePhase(PhaseEvent e) { | FacesContext fc = e.getFacesContext(); | UIViewRoot root = fc.getViewRoot(); | Iterator i = fc.getClientIdsWithMessages(); | while (i.hasNext()) { | String clientId = (String) i.next(); | if(clientId != null) { | UIComponent c = root.findComponent(clientId); | if (c != null) { | String fieldRef = | (String) c.getAttributes().get("fieldLabel"); | if (fieldRef != null) { | Iterator j = fc.getMessages(clientId); | while (j.hasNext()) { | FacesMessage fm = (FacesMessage) j.next(); | String s = fm.getSummary(); | s = s.replaceFirst("\\[fieldLabel\\]", fieldRef); | fm.setSummary(s); | } | } | } | } | } | } | | public void afterPhase(PhaseEvent e) { | } | } |
Then specify the fielLabel in the f:attribute tag: <h:inputText value="#{contactUs.email}" size="50" maxlength="75" required="true"> | <f:attribute name="fieldLabel" value="Email"/> | </h:inputText> Or, if you require completely different messages for each component, you could specify a resource bundle key <h:inputText value="#{contactUs.email}" size="50" maxlength="75" required="true"> | <f:attribute name="bundleKey" value="contactus.error.email.required"/> | </h:inputText> Using the latter approach, you would get the resource bundle key from the component attributes map in the listener and replace the summary text altogether. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045194#4045194 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045194 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user