让JSF标记不呈现HTML标记

时间:2011-12-22 21:51:49

标签: html jsf

我为JSF团队做前端HTML。我经常遇到用于呈现自己的HTML的JSF标签。它通常是一个SPAN,通常不是问题,但偶尔我们会有这个:

<table>
<h:panelGroup rendered="[jsf logic]">
    <tr><td>#{jsfVariable}</td></tr>
</h:panelGroup>
</table>

这将呈现这个:

<table>
<span>
    <tr><td>Hello World.</td></tr>
</span>
</table>

我一直在阅读JSF标记文档,但是找不到特定的方法来告诉JSF标记只呈现子HTML,而不是标记本身作为HTML元素。是否有一个JSF属性来告诉它“不渲染范围”?或者是否有一个JSF标记不会呈现为HTML,但仍允许在?

中使用JSF变量

1 个答案:

答案 0 :(得分:8)

仅当您为<span>提供必须以HTML格式结尾的属性时才会生成<h:panelGroup>,例如idstyleClass在您给出的示例中,<h:panelGroup>只有rendered属性,因此不会为HTML生成任何内容。

因此,要实现您的要求,只需从rendered中移除<h:panelGroup>以外的所有属性,就像您在自己的问题示例中所做的那样。