Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Omnifaces FullAjaxExceptionHandlerFactory在从引发异常时不工作<;p:ajax>;内部<;p:tree>;_Ajax_Primefaces_Exception Handling_Tree_Omnifaces - Fatal编程技术网

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,并且有相同的行为。