检查是否已设置JSP片段

Jar*_*red 8 jsp

我遇到了以下教程JSP技巧,使模板更容易?使用JSP创建页面模板(我如何错过这么久?!?).但是,在做了一些搜索之后,我似乎无法弄清楚如何(或者是否可能)检查是否已经设置了JSP片段.

这是我正在尝试做的一个例子:

我有一个名为的模板default.tag.它有2个JSP属性,定义如下:

<%@attribute name="title" fragment="true" required="true" %>
<%@attribute name="heading" fragment="true" %>
Run Code Online (Sandbox Code Playgroud)

然后在页面的代码中,我将页面的<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>
Run Code Online (Sandbox Code Playgroud)

我有的地方<c:when test="${true}">,我希望能够检查heading片段是否已经设置以显示它,但如果没有,则默认为title片段.

Jar*_*red 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>
Run Code Online (Sandbox Code Playgroud)

这就是我需要做的一切.好像我只是想让它变得比它需要的更难!