2012-05-10 2 views
28

Можно создать дубликат:
JSP tricks to make templating easier?Каков наилучший способ создания шаблона макета JSP?

Я новичок в JSPs и сервлетов, я задаюсь вопросом, есть аккуратный способ создания макета JSP и использовать его на подобных страницах JSP , что-то вроде основных страниц asp.net.

Я googled это, некоторые люди говорят использовать шаблоны http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates который использует библиотеку тегов jstl. Он говорит пометили как это:

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

, но я получаю ошибку (потому что jstl.jar и standard.jar в WEB-INF/Lib/директории).

Однако некоторые говорят, что шаблон JSTL есть проблемы в соответствии с этим Struts OR Tiles OR ???...... JSP template solution

Я бы рад помочь мне знать, что лучший способ.

EDIT: Мне нужно, чтобы разделить раскладку страницы на части, такие как контент, заголовок, ... и задать эти части на странице, которая использует шаблон макета, точно так же, как главная страница asp.net.

+1

Возможное решение http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier http://www.javaworld.com/javaworld/jw-09-2000/jw-0915 -jspweb.html Я не знаю наилучшего способа – shareef

+0

спасибо, я думаю, что первая ссылка отличная http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier – Ashkan

ответ

74

поместите в WEB-INF/теги/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> 

Чтобы использовать эту функцию:

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

Это именно то, что вы думаете, что делает!

Это была отличная реакция Уилла Хартунга на this link.