Primefaces commandButton更新在加载页面之前引发错误
首先,我使用的是: PrimeFaces 3.5 和JSF2.2(Mojarra) 我有这一页:Primefaces commandButton更新在加载页面之前引发错误,primefaces,jsf-2.2,Primefaces,Jsf 2.2,首先,我使用的是: PrimeFaces 3.5 和JSF2.2(Mojarra) 我有这一页: <ui:composition> <ui:define> <p:layout id="layout"> <p:layoutUnit id="west"> <h:form id-"form_filter"> .
<ui:composition>
<ui:define>
<p:layout id="layout">
<p:layoutUnit id="west">
<h:form id-"form_filter">
.
.
.
<p:commandButton action="#{bean.action}" update=":layout:center:form_tabs"/>
</h:form>
</p:layoutUnit>
<p:layoutUnit id="center">
<h:form id="form_tabs">
<p:tabView>
<p:tab>
<p:tab>
<p:tab>
</p:tabView>
</h:form>
</p:layoutUnit>
</p:layout>
</ui:define>
</ui:composition>
但是当我从p:commandButton中删除update参数时,它会正常加载
有什么提示吗
谢谢大家,很抱歉英语不好。
<p:commandButton action="#{bean.action}" update=":form_tabs"/>
更新该行。实际上update=“:layout:center:form_tabs”
没有找到布局,这就是发生错误的原因。您不需要为layout和layoutunit定义id。简单的表单ID可以很好地进行更新。如果要更新选项卡视图中的特定选项卡,请为选项卡视图和选项卡定义id并更新
当异常消息中由someClientId
标识的组件(在您的特定情况下,因此layout
)未实现接口时,将引发此异常
事实上,根据该协议,它没有实现该接口。只需去掉客户端ID选择器中的该部分:
<p:commandButton ... update=":center:form_tabs" />
java.lang.IllegalArgumentException: someClientId
at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:608)
<p:commandButton ... update=":center:form_tabs" />