jsf - example - ¿Qué hace<f: facet> do y cuándo debería usarlo?
primefaces showcase (1)
Una faceta representa una sección nombrada dentro de un componente contenedor. Por ejemplo, puede crear un encabezado y una faceta de pie de página para un componente de tabla de datos. http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_facet.html
Es útil cuando se desea crear un componente que use algún código del usuario (digamos wrapper).
es decir. cuando desee crear un componente que oculte texto largo y que muestre una versión breve del mismo. Puede usar solo el cuerpo del elemento, pero obtendrá solo un valor, si desea obtener del usuario la versión corta y la versión larga, entonces no puede hacerlo en un valor (sin usar discriminante), solo use faceta y decir cuál es el largo y cuál es la versión corta.
<textShortener>
<f:facet name="short">
This text is short.
</f:facet>
<f:facet name="long">
This text is too <b>long</b to be showed when page loads. User have to click the button after the short text to show this.
</f:facet>
</textShortener>
Sí, esto se puede (y se debe) hacer con plantillas jsf, pero espero que lo tengas.
Para preguntar: usted definió faceta solo en el xml salvaje, nadie lo solicitó para que nadie lo procesara, es por eso que no arrojó ningún error ni mostró nada.
He estado teniendo problemas con la etiqueta <f:facet>
. Estoy trabajando a partir de otros ejemplos de código que lo utilizan, pero no estoy seguro exactamente para qué sirve.
He escrito un código que en el método es exactamente el mismo que el otro código que he visto que funciona, excepto que está incluido en una etiqueta <f:facet name=actions>
. Cuando agrego esto alrededor de mi código, el cuadro desplegable en el que lo estoy envolviendo desaparece cuando lo despliego. ¿Alguien capaz de sugerir una razón para esto o darme una idea de cómo y cuándo usar faceta?
Aquí está mi código, no me molestaré en agregar el código del bean ya que son solo getters y setters básicos y no creo que estén causando el problema.
<f:facet name="actions">
<p:selectOneMenu id="SwitchWeekDrpDwnMenu"
value="#{depotWorkloadBean.selectView}"
partialSubmit="true">
<p:ajax update="mainForm"
listener="#{depotWorkloadBean.updateView}" />
<f:selectItem itemLabel="Day view" itemValue="Day"/>
<f:selectItem itemLabel="01/01/2014" itemValue="Week"/>
</p:selectOneMenu>
</f:facet>
Si elimino la etiqueta de faceta, aparece el cuadro desplegable, pero no funciona como debería con los beans.