替换JavaServer Faces错误页面

时间:2009-10-21 10:05:27

标签: jsf java-ee facelets

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

500 Internal Server Error

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

1 个答案:

答案 0 :(得分:5)

开发堆栈跟踪可能来自您的JSF实现。禁用它的代码将特定于实现。对于Servlet中的MyFaces,请在web.xml

中使用此init参数
  <context-param>
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
    <param-value>false</param-value>
  </context-param>

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

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

要指定错误页面,您可以使用常用的容器机制。对于Servlet,这可以是specifying a error pages in web.xml,键入异常类型或错误代码。抓住所有扔掉的人......

  <error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/errorPage.faces</location>
  </error-page>

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