Primefaces commandButton更新在加载页面之前引发错误

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"> .

首先,我使用的是: PrimeFaces 3.5 和JSF2.2(Mojarra)

我有这一页:

 <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" />