我遇到了以下教程JSP tricks to make templating easier?,因为我使用JSP来创建页面模板(我怎么会错过这么久?!?)。但是,在做了一些搜索之后,我似乎无法弄清楚如何(或者是否可能)检查是否已经设置了JSP片段。
以下是我正在尝试做的一个示例:
我有一个名为default.tag
的模板。它有2个JSP属性,定义如下:
<%@attribute name="title" fragment="true" required="true" %>
<%@attribute name="heading" fragment="true" %>
然后在页面代码中,我将页面的<title>
元素设置为<jsp:invoke fragment="title" />
。然后在页面后面,我有以下内容:
<c:choose>
<c:when test="${true}">
<jsp:invoke fragment="heading" />
</c:when>
<c:otherwise>
<jsp:invoke fragment="title" />
</c:otherwise>
</c:choose>
我有<c:when test="${true}">
的位置,我希望能够检查是否已设置heading
片段以显示它,但如果没有,则默认为title
片段
答案 0 :(得分:11)
在做了一些麻烦之后,我将回答我自己的问题。事实证明,给attribute
的名称实际上也变成了一个变量。因此,我可以做到以下几点:
<c:choose>
<c:when test="${not empty heading}">
<jsp:invoke fragment="heading" />
</c:when>
<c:otherwise>
<jsp:invoke fragment="title" />
</c:otherwise>
</c:choose>
这就是我需要做的一切。好像我只是想让它变得比它需要的更难!