validaciones showcase entre ejemplos comunicacion componentes beans bean arbol jsf jsf-2 richfaces

showcase - Cómo agregar un mensaje a un componente específico desde el bean de respaldo JSF



primefaces showcase (2)

Debe proporcionar el llamado client id , que encontrará en UIComponent .

El siguiente es un ejemplo rápido de cómo usar esto.

Considere el siguiente frijol:

@ManagedBean @RequestScoped public class ComponentMsgBean { private UIComponent component; public UIComponent getComponent() { return component; } public void setComponent(UIComponent component) { this.component = component; } public String doAction() { FacesContext context = FacesContext.getCurrentInstance(); context.addMessage(component.getClientId(), new FacesMessage("Test msg")); return ""; } }

siendo utilizado en el siguiente Facelet:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" > <h:body> <h:form> <h:outputText id="test" value="test component" binding="#{componentMsgBean.component}"/> <h:message for="test"/> <h:commandButton value="click me" action="#{componentMsgBean.doAction}" /> </h:form> </h:body> </html>

Esto agregará un mensaje de Caras con contenido "Test msg" para el componente outputText utilizado en el ejemplo.

Tengo un mensaje h: inputText y un mensaje h: conectado:

<h:inputText id="myText" value="#{myController.myText}" /> <a4j:outputPanel> <h:message for="myText" .../> </a4j:outputPanel>

Quiero enviarle un mensaje desde java, de la siguiente manera:

FacesContext.getCurrentInstance().addMessage(arg0, arg1);

que se envía a h: messages, pero a un ID específico en una forma específica. ¿Cómo puedo hacer esto? (Sin implementar el bean de validación o el método de validación, es decir, sin lanzar la excepción de validación).


Otra forma de hacerlo es: asigne un ID al formulario, como "form1", luego, cuando agregue el mensaje, el ID de cliente es "form1: prueba".