Omnifaces FullAjaxExceptionHandlerFactory在从引发异常时不工作<;p:ajax>;内部<;p:tree>;
我有以下代码:Omnifaces FullAjaxExceptionHandlerFactory在从引发异常时不工作<;p:ajax>;内部<;p:tree>;,ajax,primefaces,exception-handling,tree,omnifaces,Ajax,Primefaces,Exception Handling,Tree,Omnifaces,我有以下代码: <p:tree value="#{blockTreeBean.tarifRoot}" var="node" dynamic="true" selectionMode="single" selection="#{blockTreeBean.selectedNode}"> <p:ajax event="select" onstart="thePanel.openPanel();"
<p:tree value="#{blockTreeBean.tarifRoot}" var="node" dynamic="true"
selectionMode="single"
selection="#{blockTreeBean.selectedNode}">
<p:ajax event="select" onstart="thePanel.openPanel();"
update=":tarmedDetailViewer, @this"
listener="#{blockTreeBean.onNodeSelect}"
oncomplete="javascriptfunction()"/>
...
</p:tree>
...
在更新tarmedDetailViewer的过程中,当EL表达式抛出NullPointerException时,我希望得到一个500错误页面。相反,我会记录错误,并且不会呈现包含异常的内容。异常将在事件的xhtml中引发:
<f:event type="preRenderComponent" listener="#{bean.initDto}"/>
如果在非ajax请求中抛出空指针,则错误页面将起作用。如果onNodeSelect方法直接抛出NullPointerException,那么它就可以工作。如果在以下上下文中抛出空指针,它也可以工作:
<p:commandButton value="hi!" id="ajaxbutton" icon="icon-arrow" ajax="true"
action="#{bean.badmethod}"/>
My faces-config.xml包含:
<factory>
<exception-handler-factory>
org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory
</exception-handler-factory>
</factory>
<error-page>
<error-code>500</error-code>
<location>/error-500.jsf</location>
</error-page>
org.omnifaces.exceptionhandler.fullajaxexceptionhandler工厂
My web.xml包含:
<factory>
<exception-handler-factory>
org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory
</exception-handler-factory>
</factory>
<error-page>
<error-code>500</error-code>
<location>/error-500.jsf</location>
</error-page>
500
/error-500.jsf
使用版本:
- 全方位:1.5
- 基本面:5.1
- Tomcat 8.0.15
- 升级到JSF Mojarra 2.2.10(在JSF Mojarra 2.1.2之前)
更新:xhtml部分中的任何异常都将创建此行为,而不仅仅是在标记f:event中 这是以前的事。它似乎与莫哈拉有关,因为它在我的脸上起作用。您使用的是哪个JSF impl/版本?也许我可以再看一遍。@BalusC谢谢!这看起来很像这张票上的问题。这很可能是一个与莫哈拉有关的问题。这个问题有解决方法吗?当你说“JSF2.1.2”时,你是说“Mojarra 2.1.2”吗?那个相当老了。你试过当前的2.1.x(2.1.29)甚至2.2.x(2.2.10)吗?@BalusC我现在试过Mojarra 2.1.29和2.2.10,并且有相同的行为。