我为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变量答案 0 :(得分:8)
仅当您为<span>
提供必须以HTML格式结尾的属性时才会生成<h:panelGroup>
,例如id
,styleClass
在您给出的示例中,<h:panelGroup>
只有rendered
属性,因此不会为HTML生成任何内容。
因此,要实现您的要求,只需从rendered
中移除<h:panelGroup>
以外的所有属性,就像您在自己的问题示例中所做的那样。