38

重複の可能性:
テンプレート作成を容易にする JSP トリック?

私は JSP とサーブレットを初めて使用します。レイアウト jsp を作成し、それを asp.net マスター ページのような同様の jsp ページで再利用するためのきちんとした方法があるのではないかと考えています。

私はそれをグーグルで調べました.jstlタグライブラリを使用するテンプレートhttp://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templatesを使用すると言う人もい ます。次のようなタグを付けるように指示されています。

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

しかし、エラーが発生します (jstl.jar と standard.jar が WEB-INF/lib/ ディレクトリにあるため)。

ただし、このStruts OR Tiles OR ???...... JSPテンプレートソリューションによると、jstlテンプレートに問題があると言う人もいます

最善の方法を教えていただけると幸いです。

編集:ページのレイアウトをコンテンツ、ヘッダーなどの部分に分割し、この部分をレイアウト テンプレートを使用するページに設定する必要があります。これは、asp.net マスター ページとまったく同じです。

4

1 に答える 1

92

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>

これを使用するには:

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

それはあなたが思っていることを正確に行います!

これは、このリンクでの Will Hartung による素晴らしい回答の一部です。

于 2012-10-27T19:19:43.697 に答える