1

p:ajaxExceptionHandler の問題に直面しています。p:ajaxExceptionHandler コードがまったく呼び出されないようです。基本的には例外発生時、発生していない同じページにポップアップを表示したい

コンソールにエラーが表示されます。

<Jul 27, 2015 2:33:22 PM EDT> <Error> <javax.faces.event> <BEA-000000> <Received
 'java.lang.NullPointerException' when invoking action listener '#{BeanName.methodName()}' for component 'delete'>
<Jul 27, 2015 2:33:22 PM EDT> <Error> <javax.faces.event> <BEA-000000> <java.lan
g.NullPointerException: Exception

別のページにリダイレクトされたくないのですが、web.xml にエントリを追加して、それが機能するかどうかを確認しようとしましたが、それでも同じエラーが発生します。

私の要件は、条件付きでポップ ダイアログを表示することです。バッキング Bean には、ポップアップを表示したいときにある条件が満たされない場合に例外をスローする checkPopup メソッドがあります。何か足りない場合は助けてください。ありがとう!

マイコード

<p:commandButton id="delete" value="Save and Proceed" styleClass="deleteBtn" type="submit"  icon="ui-icon-disk" actionListener="#{BeanName.checkPopUp()}"
                            update=":cbForm:topPanel check" ajax="true" >
            </p:commandButton>
            <p:ajaxExceptionHandler type="java.lang.NullPointerException" update="check" onexception="PF('confirmDlg').show()" /> 
                    <p:confirmDialog rendered="#{BeanName.methodName()}" id="check" header="confirmation" widgetVar="confirmDlg" global="true"  severity="info" closable="false">
                        <f:facet name="message">
                        <h:outputText value="#BeanName.BeanName.dialogMsg}"/>
                        </f:facet>
                        <p:commandButton value="#{resbndl.btnOK}" type="submit" process="@this" action="#{BeanName.methodName()}" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" onstart="PF('confirmDlg').hide()" update=":cForm:tView:check"/>
                        <p:commandButton value="#{resbndl.btnCancel}" type="submit" process="@this" action="#{BeanName.methodName()}" update=":cForm:tView:fieldName"  styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
                    </p:confirmDialog>  

checkPopUp コード

public String checkPopUp (){
        if (value == null)
            throw new java.lang.NullPointerException("Exception");
        return validate(2);
    }
4

0 に答える 0