template plantillas jsf facelets myfaces

jsf - plantillas - Facelets multi-level templates-ui: define no renderizado



ui:composition primefaces (1)

El <ui:include> debería haber sido un <ui:decorate> .

<ui:decorate template="included-page.xhtml" />

Pero si el included-page.xhtml no se reutiliza en otro lugar, me pregunto por qué no se ha incluido en la plantilla maestra en su lugar.

Ver también:

Tengo 2 plantillas básicas, una con un menú lateral y otra sin ella, ambas ui: incluyen una página común que contiene ui: insertar etiquetas (las plantillas son bastante amplias, por lo que el ejemplo básico a continuación).

Usar Mojarra todo funcionó bien, pero ahora he migrado a MyFaces, las etiquetas ui: insert se ignoran y el contenido de la interfaz de usuario relacionada: define no se procesa (es decir, ''Aquí están mis resultados'' no se muestra).

¿Debería especificar alguna vez la página incluida.xhtml como plantilla? Lo intenté

<ui:composition template="included-page.xhtml" />

en lugar de

<ui:include src="included-page.xhtml" />

pero perdió el CSS.

Esperando que alguien pueda sugerir una solución :)

Muchas gracias,

Neil

my-page.xhtml

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" template="/templates/default-template.xhtml"> <ui:param name="title" value="My Title" /> <ui:define name="results"> Here are my results </ui:define> </ui:composition>

default-template.xhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> <title>#{title}</title> </h:head> <h:body> <ui:include src="included-page.xhtml" /> </h:body> </html>

included-page.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:insert name="results"> </ui:insert> </ui:composition>