【发布时间】:2012-01-26 11:08:11
【问题描述】:
我为一个 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 属性告诉它“不呈现跨度”?或者是否有一个不会呈现为 HTML,但仍允许在其中使用 JSF 变量的 JSF 标记?
【问题讨论】:
-
我意识到您可能正在做一些更复杂的事情,但为什么不直接使用 -> ...td>
。 .. 或者,您可以编写一个自定义组件,该组件有子组件,但什么也不渲染,但这对于一些可能很容易解决的事情(复合组件或简单的 html 重新设计)来说似乎需要做很多工作 -
是的,这就是简化示例的问题。 ;) 我同意,在这个具体的例子中,你的解决方案非常有意义。但是是的,在实际使用中,我们的代码通常要复杂得多。