当前位置: 首页 > 知识库问答 >
问题:

Primefaces扩展ajaxErrorHandler不工作

富勇军
2023-03-14

在WildFly 8-1上,我的webappsweb-inf/lib目录中有primefaces-5.1.jarprimefaces-extensions-2.1.0.jar

我已配置web-inf/faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
  <application>
    <el-resolver>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver</el-resolver>
  </application>

  <factory>
    <exception-handler-factory>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory</exception-handler-factory>
  </factory>
</faces-config>

我有以下JSF。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:f="http://xmlns.jcp.org/jsf/core"
  xmlns:p="http://primefaces.org/ui"
  xmlns:pe="http://primefaces.org/ui/extensions">
<h:head></h:head>
<h:body>
  <h:form id="form">
    <pe:ajaxErrorHandler body="ERROR"/>
    <p:commandButton actionListener="#{dossierResumen.excepcion}" value="Excepción"/>
  </h:form>
</h:body>
</html>

其中dossierresumen#excepcion()

public void excepcion() {
  throw new NullPointerException("EXCEPCION! EXCEPCION!");
}

更新:

应Guaido79的请求,我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>seleneWar</display-name>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

  <error-page>
    <error-code>500</error-code>
    <location>/error/500.xhtml</location>
  </error-page>

  <context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
  </context-param>

  <context-param>
    <param-name>primefaces.CLIENT_SIDE_VALIDATION</param-name>
    <param-value>true</param-value>
  </context-param>

  <resource-ref>
    <res-ref-name>jsf/ProjectStage</res-ref-name>
    <res-type>java.lang.String</res-type>
  </resource-ref>

</web-app>

共有1个答案

吴鸿彩
2023-03-14

该组件有两种模式:简单模式和扩展模式。

在简单模式中,您不需要在faces-config.xml中指定任何内容。因此您可以删除这些行:

<application>
    <el-resolver>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver</el-resolver>
</application>

<factory>
    <exception-handler-factory>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory</exception-handler-factory>
</factory>

或者删除整个faces-config.xml文件,因为它是其中唯一的内容。然后您可以测试简单模式,它在web.xml中不需要定义任何其他内容就可以正常工作。这可能够你需要的了。

<error-page>
   <exception-type>java.lang.Throwable</exception-type>
   <location>/error/500.xhtml</location>
</error-page>

无论如何,强烈建议使用p:ajaxExceptionHandler本机组件,因为PrimeFaces扩展的作者可能会在将来删除该组件,因为不再需要(链接)已经在3.2.0版本中删除了该组件。(链接)

 类似资料:
  • PHP-X是一个基于PHP ZendVM的C++封装层,可以基于PHP-X开发PHP扩展、C++嵌入PHP、PHP SAPI等程序。PHP-X可以大大降低PHP内核扩展开发的难度,提升效率。 开源中国码云:http://git.oschina.net/swoole/PHP-X Github仓库:https://github.com/swoole/PHP-X QQ群:376696453 环境依赖 P

  • 嘿,我对typo3很陌生,我想建立一个网站。我正在运行10.4版。安装了引导程序包的类型3中的4个。我已经试着跟着导游走了https://docs.typo3.org/typo3cms/extensions/gridelements/stable/ 我已将打字稿复制到模板设置中,但前端没有输出。记住我是新手,所以我还不能很好地理解打字稿<那我能做些什么呢? 编辑:我想使用GriElements,这

  • 但其他事情都不起作用。例如: 显示:没有为此数据库实例注册名为的过程。请确保正确拼写了过程名,并正确部署了过程。 此外: Edit3:现在调用该过程apoc.spatial.sortByDistance...文档不是最新的。您必须查看存储库的代码...

  • 我正在将一个应用程序从旧版本的wicket迁移到wicket 8。一些页面工作正常(简单页面,如登录)。这些页面不使用扩展机制。当我访问具有该机制的页面时,该机制不起作用。我不知道这是否是一个bug,但我尝试了所有的方法,但没有找到解决方案。我正在使用wicket 8.0.0-M5(我知道这不是一个稳定的版本)。有人有同样的问题吗?这是我的代码: WerklijstPagexxx.html Wer

  • 我正在使用PrimeFaces 5并使用dataexport导出. xls和pdf文件。当我单击导出时,似乎什么都没有发生。下面是我的代码: dataTable和Export命令都在一个表单中。它类似于素数面上给出的示例。组织网站。但是,我无法将数据导出到pdf、cvs。

  • 我有一个PrimeFaces数据表,有一列名为“name”,还有一个行扩展名为“description”。 是否有可能通过单击使这些行可选择,但在扩展时不能触发选择事件? 编辑