2

我想要完成的是能够获取一段代码/HTML,并告诉 JSF 将其包含在最终渲染中或不包含在最终渲染中。我弄乱了<ui:remove>标签,但这总是会删除内容。

这是我试图不包括的内容:

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

我需要一些东西来解决这个问题,它将在渲染 = true/false 的基础上包含它。我希望它不包含任何臃肿的代码,如 div、表格等。

4

1 回答 1

2

希望我能正确理解您的问题,您是否尝试过这些具有渲染属性的组件?

例子:

<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 -->.

于 2013-11-08T16:01:26.090 回答