2012-05-10 9 views
28

Eventuali duplicati:
JSP tricks to make templating easier?Qual è il modo migliore per creare un modello di layout JSP?

Sono nuovo di JSP e Servlet, mi chiedo c'è un modo pulito per creare un jsp layout e riutilizzarlo su pagine JSP simili , qualcosa come le pagine master di asp.net.

ho cercato con Google, alcune persone dicono utilizzare i modelli http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates che utilizza libreria di tag JSTL. Si dice di mettere un tag come questo:

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

ma ottengo l'errore (perché jstl.jar e standard.jar sono in WEB-INF/directory/lib).

Tuttavia alcuni dicono modello JSTL ha problemi in base a questo Struts OR Tiles OR ???...... JSP template solution

Sarei felice di aiutarmi a capire il modo migliore.

MODIFICA: Quello che mi serve è dividere il layout della pagina in parti come contenuto, intestazione, ... e impostare queste parti nella pagina che utilizza il modello di layout, esattamente come la pagina master di asp.net.

+1

soluzione possibile http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier http://www.javaworld.com/javaworld/jw-09-2000/jw-0915 -jspweb.html non so il modo migliore – shareef

+0

grazie Penso che il primo link sia ottimo http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier – Ashkan

risposta

74

Inserire il seguente in 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> 

Per utilizzare questo:

<%@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> 

che fa esattamente quello che pensi lo fa!

Questo fa parte di una grande risposta di Will Hartung su this link.

Problemi correlati