#jsf #facelets
#jsf #лицевые панели
Вопрос:
У меня есть шаблон JSF с заголовком и подзаголовком :
<h3><ui:insert name="title"/></h3>
<hr/>
<h5><ui:insert name="subtitle"/></h5>
Все страницы, использующие этот шаблон, имеют заголовок, но не всегда подзаголовок :
<ui:define name="title">My Title with no subtitle</ui:define>
Когда нет субтитров, я не хочу иметь <hr/>
тег. Итак, что я действительно хочу сделать, это проверить, является ли subtitle
пустым, если да, игнорируйте блок кода. Что-то вроде этого :
<h3><ui:insert name="title"/></h3>
<c:if test="#{not empty subtitle}">
<hr/>
<h5><ui:insert name="subtitle"/></h5>
<c:if>
Но, конечно, <c:if test="#{not empty subtitle}">
это не работает. Я не знаю, как получить доступ к значению subtitle
переменной.
Есть идеи?
Спасибо
Ответ №1:
Самое близкое, что вы можете получить, это вместо этого определить субтитр как <ui:param>
.
Таким образом,
<ui:define name="title">My Title with a subtitle</ui:define>
<ui:param name="subtitle" value="A subtitle" />
с помощью
<h3><ui:insert name="title"/></h3>
<ui:fragment rendered="#{not empty subtitle}">
<hr/>
<h5>#{subtitle}</h5>
</ui:fragment>