jsf
Plantillas JSF
Buscar..
Observaciones
JSF proporciona etiquetas especiales para crear un diseño común para una aplicación web llamada etiquetas facelets . Estas etiquetas ofrecen flexibilidad para administrar partes comunes de varias páginas en un solo lugar.
Espacios de nombres:
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
Cómo crear una plantilla
Configuración de una plantilla para una aplicación
Cree un archivo llamado template.xhtml debajo de la carpeta /WEB-INF , de esa manera los archivos de plantilla estarán accesibles solo para el marco.
/WEB-INF/template.xhtml
<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<title><ui:define name="title">Default title</ui:define></title>
</h:head>
<h:body>
<!-- Some styles that we might include for our whole application -->
<h:outputStylesheet name="css/template.css" />
<!-- Shared content for the application, e.g. a header, this can be an include -->
<div>
Application Header
</div>
<!-- The content we want to define in our template client -->
<div>
<ui:insert name="content" />
</div>
</h:body>
</html>
Este archivo actuará como plantilla para la aplicación. Ahora definiremos una vista específica en nuestro directorio de vistas.
/home.xhtml
<ui:composition template="/WEB-INF/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:define name="title">Home</ui:define>
<ui:define name="content">
Welcome to the application!
</ui:define>
</ui:composition>
Eche un vistazo al atributo de template en esta vista de cliente, esto le indica a JSF que use la plantilla que queremos. Luego, utilizando <ui:define> definimos contenido específico para insertarlo donde se indica en la plantilla. Al acceder a /home.xhtml en el cliente, se mostrará el resultado completo.