获取<ui:insert>的name属性

ago*_*cal 7 jsf facelets

我有一个带有标题和副标题的JSF模板:

<h3><ui:insert name="title"/></h3>
<hr/>
<h5><ui:insert name="subtitle"/></h5>
Run Code Online (Sandbox Code Playgroud)

使用此模板的所有页面都有标题,但并不总是一个副标题:

<ui:define name="title">My Title with no subtitle</ui:define>
Run Code Online (Sandbox Code Playgroud)

当没有副标题时,我不想要<hr/>标签.所以我真正想做的是检查是否subtitle为空,如果是,则忽略代码块.像这样的东西:

<h3><ui:insert name="title"/></h3>
<c:if test="#{not empty subtitle}">
    <hr/>
    <h5><ui:insert name="subtitle"/></h5>
<c:if>
Run Code Online (Sandbox Code Playgroud)

但当然<c:if test="#{not empty subtitle}">不行.我不知道如何访问subtitle变量的值.

任何的想法 ?

谢谢

Bal*_*usC 8

最接近的是将字幕定义为<ui:param>替代字幕.

从而,

<ui:define name="title">My Title with a subtitle</ui:define>
<ui:param name="subtitle" value="A subtitle" />
Run Code Online (Sandbox Code Playgroud)

<h3><ui:insert name="title"/></h3>
<ui:fragment rendered="#{not empty subtitle}">
    <hr/>
    <h5>#{subtitle}</h5>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)