Java Can';无法从bean中找到组件
我想知道为什么我不能从我的支持bean中找到一个组件,该bean的代码是:Java Can';无法从bean中找到组件,java,jsf,primefaces,javabeans,Java,Jsf,Primefaces,Javabeans,我想知道为什么我不能从我的支持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"
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或cmd也许您应该将
lazyGrid
设置为panelGrid id?
并关闭
UIComponent=viewRoot.findComponent(“form_01:meterDialog:lazyGrid”)中的引号代码> 如果您的表单具有属性prependId=“false”,则可以使用实际组件id查找
由于没有设置该属性,因此必须从UIViewRoot引用。如果p:dialog是一个命名容器(我不确定),那么您必须将lazyGrid称为“form_01:meterDialog:lazyGrid”,否则称为“form_01:lazyGrid”
以下链接将为您提供更深入的了解
希望这有帮助 您的代码中没有带有id=“lazyGrid”
的组件。是一个输入错误,因为“lostTry:viewRoot.findComponent(“form_01:lazyGrid”);
viewRoot.findComponent("form_01:meterDialog");