Mic*_*kel 4 jsp jspx jstl jsp-tags spring-mvc
我们将在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>
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
<mytags:template>
<h1>Title</h1>
<p>My content!</p>
</mytags:template>
Run Code Online (Sandbox Code Playgroud)
即在自定义JSTL标记内使用body-content ...
这有效:
<mytags:template content="some content... not HTML" />
Run Code Online (Sandbox Code Playgroud)
但在我们的案例中并不是很有用.
类似于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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
这将产生这个标记:
<h1><b>a fancy</b> hello</h1>
<p>body: <em><pre>more fancy body</pre></em></p>
</body>
Run Code Online (Sandbox Code Playgroud)
主要优点是能够有两个片段,而不是只有一个片段.
| 归档时间: |
|
| 查看次数: |
5310 次 |
| 最近记录: |