2012-05-10 22 views
28

Duplicar posible:
JSP tricks to make templating easier?¿Cuál es la mejor manera de crear plantillas de diseño JSP?

Soy nuevo en JSP y servlets, que me pregunto es que hay una clara forma de crear una JSP diseño y reutilizarla en las páginas JSP similares , algo así como las páginas maestras de asp.net.

Lo busqué en Google, algunas personas dicen que usa plantillas http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates que usa la biblioteca de etiquetas jstl. Se dice que poner una etiqueta como esta:

<%@ taglib uri='/WEB-INF/tlds/template.tld' prefix='template' %> 

pero me da error (porque jstl.jar y standard.jar están en WEB-INF/lib /).

Sin embargo algunos dicen plantilla jstl tiene problemas de acuerdo con esta Struts OR Tiles OR ???...... JSP template solution

Me alegraría que me ayude a saber la mejor manera.

EDITAR: Lo que necesito es dividir el diseño de la página en partes como contenido, encabezado, ... y configurar estas partes en la página que usa la plantilla de diseño, exactamente como la página principal de asp.net.

+1

posible solución http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier http://www.javaworld.com/javaworld/jw-09-2000/jw-0915 -jspweb.html No sé la mejor manera – shareef

+0

gracias, creo que el primer enlace es genial http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier – Ashkan

Respuesta

74

poner lo siguiente en WEB-INF/tags/genericpage.tag

<%@tag description="Overall Page template" pageEncoding="UTF-8"%> 
<%@attribute name="header" fragment="true" %> 
<%@attribute name="footer" fragment="true" %> 
<html> 
    <body> 
    <div id="pageheader"> 
     <jsp:invoke fragment="header"/> 
    </div> 
    <div id="body"> 
     <jsp:doBody/> 
    </div> 
    <div id="pagefooter"> 
     <jsp:invoke fragment="footer"/> 
    </div> 
    </body> 
</html> 

Para utilizar este:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> 

<t:genericpage> 
    <jsp:attribute name="header"> 
     <h1>Welcome</h1> 
    </jsp:attribute> 
    <jsp:attribute name="footer"> 
     <p id="copyright">Copyright 1927, Future Bits When There Be Bits Inc.</p> 
    </jsp:attribute> 
    <jsp:body> 
     <p>Hi I'm the heart of the message</p> 
    </jsp:body> 
</t:genericpage> 

que hace exactamente lo que usted cree!

Esto fue parte de una gran respuesta de Will Hartung en this link.

Cuestiones relacionadas