Доступ к атрибуту имени <ui: insert> - PullRequest
7 голосов
/ 13 апреля 2011

У меня есть шаблон 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 Ответ

8 голосов
/ 13 апреля 2011

Самое близкое, что вы можете получить - это определить субтитры как <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>
...