tutorial template etiquetas ejemplo jsf components conditional-rendering

etiquetas - templates jsf primefaces



Visualización condicional de componentes JSF (2)

Además de la publicación anterior, puedes tener

<h:form rendered="#{!bean.boolvalue}" /> <h:form rendered="#{bean.textvalue == ''value''}" />

Jsf 2.0

En primer lugar, soy nuevo en Java EE, provengo de un sólido fondo de desarrollo ASP .NET. He pasado por la red, y podría extrañar esto, pero parece que no hay tutoriales sencillos y directos sobre cómo podría conectar la clase de bean de respaldo a los componentes de JSF.

Un buen ejemplo es el siguiente, actualmente estoy intentando crear una página JSF donde haya un conjunto de enlaces como barra de menús y un conjunto de formularios. Lo que planeo hacer es, al hacer clic en un enlace, se presentará un formulario en particular.

En ASP.NET, pude recuperar fácilmente el elemento y luego configurar el atributo para que se pueda visualizar. Me pregunto si hay una manera fácil (diablos, incluso de cualquier forma) de hacer esto en JSF.

Los formularios ya están en la página, es solo cuestión de establecer el atributo "render" en verdadero cuando hago clic en un enlace en particular.


Sí, usa el atributo rendered .

<h:form rendered="#{some boolean condition}">

Por lo general, lo vincula al modelo en lugar de dejar que la modelo agarre el componente y lo manipule.

P.ej

<h:form rendered="#{bean.booleanValue}" /> <h:form rendered="#{bean.intValue gt 10}" /> <h:form rendered="#{bean.objectValue eq null}" /> <h:form rendered="#{bean.stringValue ne ''someValue''}" /> <h:form rendered="#{not empty bean.collectionValue}" /> <h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" /> <h:form rendered="#{bean.enumValue eq ''ONE'' or bean.enumValue eq ''TWO''}" />

Tenga en cuenta la importancia de los operadores EL basados ​​en palabras clave como gt , ge , le y lt lugar de > , >= , <= y < ya que los paréntesis angulares < y > son caracteres reservados en XML. Vea también este Q & A relacionado: Error al analizar XHTML: El contenido de los elementos debe consistir en datos de caracteres bien formados o marcado .

En cuanto a su caso de uso específico, supongamos que el enlace está pasando un parámetro como el siguiente:

<a href="page.xhtml?form=1">link</a>

A continuación, puede mostrar el formulario de la siguiente manera:

<h:form rendered="#{param.form eq ''1''}">

(el #{param} es un objeto EL implícito que hace referencia a un Map representa los parámetros de solicitud)

Ver también: