Acessing the name attribute of a <ui:insert>

一曲冷凌霜 提交于 2019-12-01 16:02:13

问题


I have a JSF template with the a title and a subtitle :

<h3><ui:insert name="title"/></h3>
<hr/>
<h5><ui:insert name="subtitle"/></h5>

All the pages using this template have title, but not always a subtitle :

<ui:define name="title">My Title with no subtitle</ui:define>

When there is no subtitle I don't want to have a <hr/> tag. So what I really want to do is check if subtitle is empty, if yes, ignore the block of code. Something like that :

<h3><ui:insert name="title"/></h3>
<c:if test="#{not empty subtitle}">
    <hr/>
    <h5><ui:insert name="subtitle"/></h5>
<c:if>

But of course <c:if test="#{not empty subtitle}"> doesn't work. I don't know how to access the value of the subtitle variable.

Any idea ?

Thanks


回答1:


Closest what you can get is to define the subtitle as an <ui:param> instead.

Thus,

<ui:define name="title">My Title with a subtitle</ui:define>
<ui:param name="subtitle" value="A subtitle" />

with

<h3><ui:insert name="title"/></h3>
<ui:fragment rendered="#{not empty subtitle}">
    <hr/>
    <h5>#{subtitle}</h5>
</ui:fragment>


来源:https://stackoverflow.com/questions/5650606/acessing-the-name-attribute-of-a-uiinsert

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!