我遇到了 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);
}