是否可以从JavaServer Faces替换标准错误页面,例如
500 Internal Server Error
这些信息包括堆栈跟踪等信息。但是对于用户来说,当页面处于生产模式时,我想显示一个更友好的页面,说明请求没有成功。
答案 0 :(得分: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 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实现中找到针对错误处理的其他特定于供应商的支持 - 您必须检查他们的文档。