gpt4 book ai didi

jsf - 除非给出 ID,否则不呈现没有样式或样式类的面板组

转载 作者:行者123 更新时间:2023-12-04 04:25:29 25 4
gpt4 key购买 nike

根据 http://xmlns.jcp.org/jsf/html 的标签库, h:panelGroup

Intended for use in situations when only one UIComponent child can be nested, such as in the case of facets. If the "style" or "styleClass" attributes are present, and the "layout" attribute is present with a value of "block", render a "div" element, outputting the value of the "style" attribute as the value of the "style" attribute and the value of the "styleClass" attribute as the value of the "class" attribute. Otherwise, if the "layout" attribute is not present, or the "layout" attribute contains a value other than "block", render a "span" element, outputting the value of the "style" attribute as the value of the "style" attribute, and the value of the "styleClass" attribute as the value of the "class" attribute.



的情况下
<h:panelGroup id="id" layout="block">
<!-- ... --->
</h:panelGroup>

或者
<h:panelGroup layout="block" style="margin-right: 10px;">
<!-- ... --->
</h:panelGroup>
div正在呈现:
<div id="id">
</div>

各自
<div style="margin-right: 10px;">
</div>

但是当省略 id 时(如果不想 update panelGroup )或 style (如果不想设置 panelGroup 的样式)否 div正在呈现,生成的 HTML 可能会弄乱布局。进一步探索 JSF 的领域,一个 panelGroup也可用于使用其 rendered 有条件地呈现子元素标志但如前所述,当省略两个提到的属性时,结果有条件地呈现,但没有 div , 如
<h:panelGroup layout="block" rendered="true">
<it>Without DIV.</it>
</h:panelGroup>

造成
<it>Without DIV.</it>

在此询问之后,我想与 Stackoverflow 社区核实,我理解正确的是,当不使用 panelGroup 时作为命名容器或其元素的习惯样式,最好使用 ui:fragment 解决条件渲染部分(如果需要)以及带有硬编码的布局部分 div .是这样吗?

最佳答案

注意:我们说的是 if h:panelgroup将呈现任何 HTML 组件,但除非 render="false"内部组件在任何情况下都不会被阻止渲染。
h:panelgroup的行为树包括两项检查:

  • 是否至少设置了“id”或“style”或“styleClass”属性之一?
    是:
    一种。呈现 <div>如果布局=“块”,否则
    湾呈现 <span> (布局=“胡言乱语”或不存在)

    编号:
  • 不渲染 html 组件。如果您想使用“渲染”或只能嵌套一个组件(即 <f:facet> )
  • 仍然有用

    对布局属性的测试仅在 之后出现1. , 以上。由于您的第三个示例进入 分支,它被忽略。

    关于jsf - 除非给出 ID,否则不呈现没有样式或样式类的面板组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25974729/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com