4

JSP / spring-projectのある種のテンプレートエンジンには、JSTLタグとカスタムJSTLタグを使用します。

次のようなタグを作成する方法はありますか?

<div id="site">
    <div id="header">Some title</div>
    <div id="navigation"> SOME DYNAMIC CONTENT HERE </div>
    <div id="content"> ${content} </div>
    <div id="footer"></div>
</div>

次のように使用します。

<mytags:template>
    <h1>Title</h1>
    <p>My content!</p>
</mytags:template>

つまり、カスタムJSTLタグ内でbody-contentを使用します。

これは機能します:

<mytags:template content="some content... not HTML" />

しかし、私たちの場合はあまり役に立ちません。

4

1 に答える 1

5

McDowellの答えに似ていますが、より柔軟性があり、フラグメントである属性を宣言することです。http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPTags5.html#wp89854

例://foo.tagタグファイル

<%@ attribute name="greeting" fragment="true" %>
<%@ attribute name="body" fragment="true" %>
<h1><jsp:invoke fragment="greeting" /></h1>
<p>body: <em><jsp:invoke fragment="body" /></em></p>

jspファイル

<x:foo>
   <jsp:attribute name="greeting"><b>a fancy</b> hello</jsp:attribute>
   <jsp:attribute name="body"><pre>more fancy body</pre></jsp:attribute>
</x:foo>

これにより、このマークアップが生成されます。

<h1><b>a fancy</b> hello</h1>
<p>body: <em><pre>more fancy body</pre></em></p>
</body>

主な利点は、タグ付きのフラグメントを1つだけではなく、2つ持つことができることです。

于 2009-10-20T12:08:41.157 に答える