我有一个问题我无法理解。
首先是上下文:我正在使用Primefaces 3.5开发一个Web应用程序(是的,不幸的是我现在仍然坚持使用这个旧版本),在JBoss 7上运行。
有一个带有id" form"的表单包含以下所有xhtml代码。
我的视图中有一个组件,它是由绑定属性的使用提供的:
<p:dashboard id="dashboard" binding="#{myBackingBean.dashboard}" />
然后有时我想对这个组件执行ajax更新,这是通过使用primefaces的RemoteCommand组件来完成的:
<p:remoteCommand
actionListener="#{myBackingBean.someActionListener()}"
process="@this" id="myRmtCmd" oncomplete="myJsFunction();"
update=":form:dashboard" name="myRemoteCommand" />
通过单击链接触发RemoteCommand:
<a href="#!" onclick="myRemoteCommand();">Some Text</a>
到目前为止这种方法效果很好。但是,在将此代码部署到生产之后,我有时会遇到FacesException:
javax.faces.FacesException: Cannot find component with identifier ":form:dashboard"
referenced from "form:myRmtCmd".
这就是我的问题所在,因为我无法可靠地重现此异常。我的问题是:什么可能导致抛出此异常?它似乎在95%的时间工作,但我是完美主义者(你们很多人也读到这一点,我确定;)我希望这段代码可以100%的时间工作。我错过了什么?
在回答之前,请考虑以下限制因素:
干杯, P.S。
答案 0 :(得分:0)
我也有这种奇怪的行为。
绑定到#{myBackingBean.dashboard}
的组件可能不止一个,因此第一个组件设置了id,将没有一个名为“ dashboard ”的组件。