Отображение включения / выключения различных областей HTML


То, что я пытаюсь сделать, - это взять часть кода / HTML и сказать JSF, включать ее или нет в окончательный рендеринг. Я возился с тегом <ui:remove>, но это всегда будет удалять содержимое.

Вот что я пытаюсь не включать:

<li><h:commandLink value="Create an Account" action="createUser"/></li>
<li><h:commandLink value="Login" action="login"/></li>

Мне нужно что-то обернуть вокруг этого, что будет включать его на основе rendered = true/false. Я хочу, чтобы он не включал в себя какой-либо раздутый код, такой как div, таблица и т. д.

1 2

1 ответ:

Надеюсь, я правильно понял ваш вопрос, Вы пробовали эти компоненты с атрибутомrendered ?

Пример:

<h:panelGroup rendered="#{bean.display}">
    <li><h:commandLink value="Create an Account" action="createUser"/></li>
    <li><h:commandLink value="Login" action="login"/></li>
</h:panelGroup>

<h:panelGrid rendered="#{bean.display}">
    <li><h:commandLink value="Create an Account" action="createUser"/></li>
    <li><h:commandLink value="Login" action="login"/></li>
</h:panelGrid>

<rich:panel rendered="#{bean.display}">
    <li><h:commandLink value="Create an Account" action="createUser"/></li>
    <li><h:commandLink value="Login" action="login"/></li>
</rich:panel>

'display' - это булево свойство, определенное в JavaBean, которое используется для управления видимостью кода XHTML.

Еще один тег, который вы можете использовать, это <ui:include>, это может помочь вам лучше организовать ваш код, когда раздел кода XHTML достаточно велик, чтобы поместить в другой .код XHTML.

<ui:include src="yourPath.xhtml" rendered="#{bean.display}">
</ui:include>

Для <ui:remove>, я обычно использую его временно закомментируйте код как <!-- XHTML code -->.