Проверьте, установлен ли фрагмент 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>