当primefaces datatable已经在xhtml中添加了侦听器时,无法将新的ajax行为动态添加到该表中

当primefaces datatable已经在xhtml中添加了侦听器时,无法将新的ajax行为动态添加到该表中,primefaces,jsf-2.2,wildfly-8,mojarra,Primefaces,Jsf 2.2,Wildfly 8,Mojarra,我正在使用primefaces-6.0、mojarra-2.2.12和wildfly-8.2。我的目标是使用prerenderview侦听器将columnresize侦听器动态添加到datatable。当以前没有连接ajax侦听器时,此解决方案工作正常。但是,如果datatable有任何其他ajax侦听器(比如rowselect),并且使用prerenderview侦听器添加了resize侦听器,那么当我尝试更新呈现的datatable时,JSF实现中会出现空指针异常 xhtml代码: <

我正在使用primefaces-6.0mojarra-2.2.12wildfly-8.2。我的目标是使用prerenderview侦听器将columnresize侦听器动态添加到datatable。当以前没有连接ajax侦听器时,此解决方案工作正常。但是,如果datatable有任何其他ajax侦听器(比如rowselect),并且使用prerenderview侦听器添加了resize侦听器,那么当我尝试更新呈现的datatable时,JSF实现中会出现空指针异常

xhtml代码:

<f:event type="preRenderView"  listener="#{datatableTestBean.onPreRenderViewEvent()}"/>

 <p:panelGrid>
            <p:row>
                <p:column>
                    <p:commandButton  value="refersh datatable" actionListener="#{datatableTestBean.refershAll()}" update="-frm3"/>
                </p:column>
            </p:row>
            <p:row>
                <p:column>
                    <p:dataTable id="scrolltestdt" value="#{datatableTestBean.dtValues}" var="row"
                                 resizableColumns="true"  liveResize="false" resizeMode="expand"
                                 scrollable="true" scrollHeight="400" selectionMode="single" rowKey="#{row}">
                        <p:ajax event="rowSelect" listener="#{datatableTestBean.onRowSelected()}"/>

                        <p:column filterBy="#{row[0]}" headerText="COlumn1" >
                            <h:outputText value="#{row[0]}"/>
                        </p:column>
                        <p:column filterBy="#{row[1]}" headerText="COlumn2"> 
                            <h:outputText value="#{row[1]}" />
                        </p:column>


                    </p:dataTable>
                </p:column>
            </p:row>
当我使用命令按钮更新表单时,会出现此错误

日志:


在onPreRenderViewEvent侦听器中添加ajaxBehavior时,我也遇到了同样的问题

试着在你的听众中做这件事

<f:event type="postAddToView" listner="#{listner}">


它适合我。

在onPreRenderViewEvent侦听器中尝试添加ajaxBehavior时,我遇到了相同的问题

试着在你的听众中做这件事

<f:event type="postAddToView" listner="#{listner}">

它对我有用

<f:event type="postAddToView" listner="#{listner}">