Проверьте, установлен ли фрагмент JSP

я наткнулся на следующий урок JSP трюки, чтобы сделать шаблоны проще? для использования 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 фрагмент.

1 ответов


после того, как я еще немного поиграю, я собираюсь ответить на свой собственный вопрос. Оказывается, что имя, данное 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>