替换JavaServer Faces错误页面

Fil*_*erg 1 jsf facelets java-ee

是否可以从JavaServer Faces替换标准错误页面,例如

500 Internal Server Error

这些信息包括堆栈跟踪等信息.但是对于用户来说,当页面处于生产模式时,我想显示一个更友好的页面,说明请求没有成功.

McD*_*ell 5

开发堆栈跟踪可能来自您的JSF实现.禁用它的代码将特定于实现.对于Servlet中的MyFaces,请在以下位置使用此init参数web.xml:

  <context-param>
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
    <param-value>false</param-value>
  </context-param>
Run Code Online (Sandbox Code Playgroud)

如果您正在使用Sun实现(Mojarra),则可能存在一些com.sun.faces...键控参数.

您可能还想检查Facelets init参数 的值facelets.DEVELOPMENT(确保未将其设置为true).

要指定错误页面,可以使用常用的容器机制.对于Servlet,这可以通过指定错误页面 web.xml,键入异常类型或错误代码.抓住所有扔掉的东西......

  <error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/errorPage.faces</location>
  </error-page>
Run Code Online (Sandbox Code Playgroud)

您可能会在JSF实现中找到针对错误处理的其他特定于供应商的支持 - 您必须检查其文档.