あなたが興味を持っているかもしれないJSP taglibを作成しました:
http://www.inamik.com/projects/webframes/
WebFrames taglib を使用してリクエストを実装する方法は次のとおりです。
これはあなたの例との正確な 1 対 1 の相関関係であることに注意してください。ただし、あなたの例とは異なり、WebFrames では無制限のプレースホルダーを作成できるため、動的なタイトル、css-includes、右チャンネルのコンテンツ、左チャンネルのコンテンツなどを含めることができます。ナビなど
フィードバック.jsp
<%@ page language="java" %>
<%@ taglib prefix="wf" uri="/WEB-INF/tld/webframes.tld" %>
<wf:render file="main_template.jsp">
<wf:section name="inner_content">
<form> ... feedback form content here ... </form>
</wf:section>
</wf:render>
製品.jsp
<%@ page language="java" %>
<%@ taglib prefix="wf" uri="/WEB-INF/tld/webframes.tld" %>
<wf:render file="main_template.jsp">
<wf:section name="inner_content">
<div> ... product page content here ... </div>
</wf:section>
</wf:render>
main_template.jsp
<%@ page language="java" %>
<%@ taglib prefix="wf" uri="/WEB-INF/tld/webframes.tld" %>
<html>
<body>
<div class="container">
<wf:render section="inner_content" />
</div>
</body>
</html>
公式 WebFrames の例
以下は、複数のプレースホルダーを作成/入力する方法を示す Web サイトの完全な例セットです。
http://www.inamik.com/projects/webframes/examples/simpleexample.jsp
サンプルのメイン ページのソースを確認することから始めます。
メイン http://www.inamik.com/projects/webframes/examples/simpleexample.jsp.txt
<%@ page language="java" %>
<%@ taglib prefix="wf" uri="/WEB-INF/tld/webframes.tld" %>
<wf:render file="frame.jsp">
<wf:section name="title">WebFrames Simple Example Page</wf:section>
<wf:section name="header" file="headersection.html" />
<wf:section name="footer" file="footersection.html" />
<wf:section name="body">
This page is a composite of the following sub-pages. Click the links below to see
the jsp/html that makes up each sub-page.
<UL>
<LI><A href="simpleexample.jsp.txt">simpleexample.jsp</A></LI>
<LI><A href="frame.jsp.txt">frame.jsp</A></LI>
<LI><A href="headersection.html.txt">headersection.html</A></LI>
<LI><A href="footersection.html.txt">footersection.html</A></LI>
</UL>
</wf:section>
</wf:render>
レイアウトを定義せずにコンテンツ セクションを定義する方法を確認してください。
レイアウト (「frame.jsp」) を見ると、どのコンテンツが表示されるかがわからず、コンテンツのプレースホルダーを作成するだけであることがわかります。
フレーム http://www.inamik.com/projects/webframes/examples/frame.jsp.txt
<%@ page language="java" %>
<%@ taglib prefix="wf" uri="/WEB-INF/tld/webframes.tld" %>
<HTML>
<HEAD><TITLE><wf:render section="title" /></TITLE></HEAD>
<BODY>
<TABLE width="100%">
<!-- Header -->
<TR>
<TD>
<TABLE width="100%">
<TR>
<TD>
<wf:render section="header" />
</TD>
</TR>
</TABLE>
</TD>
</TR>
<!-- Body -->
<TR>
<TD>
<TABLE width="100%">
<TR>
<TD>
<wf:render section="body" />
</TD>
</TR>
</TABLE>
</TD>
</TR>
<!-- Footer -->
<TR>
<TD>
<TABLE width="100%">
<TR>
<TD>
<wf:render section="footer" />
</TD>
</TR>
</TABLE>
</TD>
</TR>
</BODY>
</HTML>
ヘッダー http://www.inamik.com/projects/webframes/examples/headersection.html.txt
<!-- BEGIN headersection.html -->
<TABLE bgcolor="#00C0C0" width="100%">
<TR>
<TD nowrap="nowrap" align="LEFT">
<H1>WebFrames Sample Header</H1>
</TD>
</TR>
</TABLE>
<!-- END headersection.html -->
フッター http://www.inamik.com/projects/webframes/examples/footersection.html.txt
<!-- BEGIN footersection.html -->
<TABLE bgcolor="#00C0C0" width="100%">
<TR>
<TD nowrap="nowrap" align="CENTER">
Copyleft (c) SampleFooter Inc.
</TD>
</TR>
</TABLE>
<!-- END footersection.html -->
このパターンは、再利用可能で保守が容易なコンポーネントを作成する、はるかに柔軟なソリューションを提供します。
ノート
これは、David Geary による以前の研究に基づいています。
http://www.javaworld.com/javaworld/jw-12-2001/jw-1228-jsptemplate.html
また、非 JSP ソリューションを希望する (または検討している) 場合は、PHP の Smarty テンプレート エンジンの精神で Java ベースのテンプレート エンジンを作成しました。
https://github.com/iNamik/iNamik-Template-Engine
このエンジン用の 'Frames' taglib もありますが、まだ GitHub にはありません。