web-dev-qa-db-ja.com

JSPレイアウトテンプレートを作成する最良の方法は何ですか?

可能性のある複製:
テンプレートを簡単にするためのJSPのトリック?

私はJSPとサーブレットに慣れていないので、asp.netマスターページのような、類似のjspページでレイアウトjspを作成して再利用するきちんとした方法があるのだろうかと思っています。

グーグルで調べたところ、一部の人々はテンプレートを使用すると言います 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テンプレートソリューション =

最善の方法を知ってくれると嬉しいです。

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

32
Ashkan

以下を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による this link に関するすばらしい回答の一部でした。

84
Ashkan