1

我遇到了 p:ajaxExceptionHandler 的问题。p:ajaxExceptionHandler 代码似乎根本没有被调用。根据 primefaces 文档,我在 web.xml 中有配置。基本上当发生异常时,我想在同一页面上显示一个没有发生的弹出窗口

在控制台中,我看到了错误,

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

检查弹出代码

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

0 回答 0