1

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

500 Internal Server Error

?

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

4

1 回答 1

5

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

  <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 参数 facelets.DEVELOPMENT的值(确保您没有将其设置为true)。

要指定错误页面,您可以使用通常的容器机制。对于 Servlet,这将通过在 中指定错误页面 web.xml,键入异常类型或错误代码。捕捉所有可抛物...

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

您可能会在 JSF 实现中找到额外的特定于供应商的错误处理支持——您必须查看他们的文档。

于 2009-10-21T11:12:16.790 回答