gpt4 book ai didi

jsf-2 - 复合组件真的需要命名容器接口(interface)吗?

转载 作者:行者123 更新时间:2023-12-02 05:19:47 26 4
gpt4 key购买 nike

我想创建一个可以与其他组件迭代的复合组件。问题是复合组件是一个命名容器,一个简单的 selectOnMenu 更改和刷新其他 selectOnMenu 不可能,因为给 selectOnMenu 的“id”是 combo1:combo 并且看不到 combo2:组合

最好的情况是form1:combo1form1:combo2,然后combo1和combo2使用h:form的uinamingcontainer。此链接讨论了此问题但没有解决方案。 https://cwiki.apache.org/MYFACES/create-a-non-namingcontainer-composite-component.html

再试一次,但没有用。 p:commandbutton 在 CC 中看不到 div 的 id。 Obtaining the clientId of the parent of a JSF2 composite component

<p:commandButton value="asd" partialSubmit="true" process="@this" update="fooId"/>  
<cf:label id="fooId" title="xxxxx" />[index.xhtml]




<composite:interface componentType="RootComponent" preferred="false">
<composite:attribute name="title" />
</composite:interface>

<composite:implementation>
<div id="#{cc.immediateParent.clientId}:#{cc.id}">
#{currentDate}
<h:panelGroup id="#{cc.clientId}" layout="block">
<p:outputLabel id="#{cc.clientId}_lb" value="#{cc.attrs.title}">
<composite:insertChildren />
</p:outputLabel>
</h:panelGroup>
</div>
</composite:implementation>[label.xhtml](compositecomponent)

最佳答案

Should a composite component really require namingcontainer interface?

是的。否则,当在同一个父命名容器中使用多个组件时,您最终会遇到来自复合组件实现的“重复组件 ID”错误。

如果你绝对肯定你不想要 NamingContainer基于组件,然后创建一个标记文件。它只需要一些 .taglib.xml样板文件。

另见:


Another try but don't works. p:commandbutton can't see id of div inside of CC

您的复合实现无效。为了通过 ajax 正确引用组合,您需要一个纯 HTML <div><span> ID 正好是 #{cc.clientId} .

例如

<composite:implementation>
<div id="#{cc.clientId}">
#{currentDate}
<h:panelGroup layout="block">
<p:outputLabel id="#{cc.clientId}_lb" value="#{cc.attrs.title}">
<composite:insertChildren />
</p:outputLabel>
</h:panelGroup>
</div>
</composite:implementation>

(顺便说一下,我的印象是 <h:panelGroup> 是多余的,您可以安全地忽略它;此外,id="#{cc.clientId}_lb" 最好是 id="label" 或其他可以最大程度减少重复/重复的东西)

另见:

关于jsf-2 - 复合组件真的需要命名容器接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14071825/

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