gpt4 book ai didi

java - 无法从 bean 中找到组件

转载 作者:行者123 更新时间:2023-12-01 13:33:26 25 4
gpt4 key购买 nike

我想知道为什么我无法从我的支持 bean 中找到组件,该 bean 的代码可以找到:

UIComponent component = viewRoot.findComponent("form_01:meterDialog:lazyGrid");
component.toString();

jsf 是:

<h:form id="form_01">
<p:dialog id="meterDialog" header="Meters" widgetVar="meter_data"
minimizable="true" maximizable="true" draggable="true"
resizable="true" height="auto" width="auto" onShow="enableForm()">

<p:remoteCommand id="cmd" name="enableForm" update="lazyGrid">
<f:setPropertyActionListener value="#{true}"
target="#{chartBean.formEnable}" />
</p:remoteCommand>

<p:panelGrid id="lazyGrid" rendered="true">
</p:panelGrid>
</p:dialog>
</h:form>

问题是它找不到lazyGrid,它可以通过以下方式找到meterDialog:

viewRoot.findComponent("form_01:meterDialog");

没有问题,但组件 lazyGridcmd 没有问题

最佳答案

如果您的表单具有属性 prependId="false",那么您可以找到实际的组件 ID。

由于您没有设置该属性,因此您必须从 UIViewRoot 引用。如果 p:dialog 是命名容器(我不确定),那么您必须将lazyGrid引用为“form_01:meterDialog:lazyGrid”,否则为“form_01:lazyGrid”。

这是一个可以让您更深入了解的链接
How to find out client ID of component for ajax update/render? Cannot find component with expression "foo" referenced from "bar"

希望这有帮助!!!

关于java - 无法从 bean 中找到组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426696/

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