根据标签库为http://xmlns.jcp.org/jsf/html http://xmlns.jcp.org/jsf/html, a h:panelGroup
is
适用于只有一个的情况
UIComponent 子级可以嵌套,例如在构面的情况下。
如果存在“style”或“styleClass”属性,并且
“布局”
属性的值为“block”,呈现“div”
元素,
输出“style”属性的值作为
“style”属性和“styleClass”属性的值作为
“类”属性的值。否则,如果“布局”属性
不存在,或者“layout”属性包含其他值
比
“block”,渲染一个“span”元素,输出的值
“style”属性作为“style”属性的值,并且
价值
将“styleClass”属性作为“class”的值
属性。
的情况下
<h:panelGroup id="id" layout="block">
<!-- ... --->
</h:panelGroup>
or
<h:panelGroup layout="block" style="margin-right: 10px;">
<!-- ... --->
</h:panelGroup>
a div
正在渲染:
<div id="id">
</div>
各自
<div style="margin-right: 10px;">
</div>
但当省略id
(如果有人不想update
the panelGroup
) 或者style
(如果不想设计样式panelGroup
) no div
正在渲染,生成的 HTML 可能会弄乱布局。进一步探索 JSF 领域,panelGroup
也可用于使用其有条件地渲染子元素rendered
标志,但正如前面提到的,当省略两个提到的属性时,结果将有条件地呈现,但没有div
, 例如
<h:panelGroup layout="block" rendered="true">
<it>Without DIV.</it>
</h:panelGroup>
leads to
<it>Without DIV.</it>
在这次询问之后,我想向 Stackoverflow 社区核实一下,我是否正确理解,当不使用panelGroup
作为命名容器或对其元素的习惯样式,最好使用以下方法解决条件渲染部分(如果需要)ui:fragment
以及带有硬编码的布局部分div
。是这样吗?
注意:我们正在谈论如果h:panelgroup
将呈现任何 HTML 组件,但除非render="false"
在任何情况下,内部组件都不会被阻止渲染。
的行为树h:panelgroup
由两项检查组成:
-
是否至少设置了“id”或“style”或“styleClass”属性之一?
Yes:
A。呈现一个<div>
如果布局=“块”,否则
b.呈现一个<span>
(布局=“胡言乱语“或不存在)
No:
- 不渲染 html 组件。如果您想使用“渲染”或只能嵌套一个组件(即,),仍然很有用。
<f:facet>
)
布局属性的测试仅在之后进行1., 多于。由于你的第三个例子进入no分支,它被忽略。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)