配置到jsf中的错误页面时出错?
Posted
技术标签:
【中文标题】配置到jsf中的错误页面时出错?【英文标题】:Error in configure to error page in jsf? 【发布时间】:2013-06-09 10:44:42 【问题描述】:在我的项目中,当我的代码中出现特定错误时,我必须显示错误页面。 我在 header.xhtml 页面中添加了以下脚本。此页面添加到每个页面。因此,每当发生错误时,我都想显示错误页面。
<script type="text/javascript">
A4J.AJAX.onExpired = function(loc, expiredMsg)
window.location = "../facelets/error/invalidSessionLogin.jsf";
;
A4J.AJAX.onError = function(req, status, message)
window.location = "../facelets/error/ajaxError.jsf";
;
</script>
但这不起作用.. 而且我还在web.xml中配置了500404错误。代码如下。
<context-param>
<description>Use this to suppress Facelets error page</description>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>false</param-value>
</context-param>
<error-page>
<error-code>500</error-code>
<location>/facelets/error/internalErrorHome.jsf</location>
</error-page>
<!-- if required page not available -->
<error-page>
<error-code>404</error-code>
<location>/facelets/error/pageNotFoundErrorHome.jsf</location>
</error-page>
但这给了我以下错误。
11:41:30,618 ERROR [[localhost]] Exception Processing ErrorPage[errorCode=404, location=/facelets/error/pageNotFoundErrorHome.jsf]
com.sun.faces.context.FacesFileNotFoundException: /facelets/error/pageNotFoundErrorHome.xhtml Not Found in ExternalContext as a Resource
我不知道我会错在哪里.. 我没有得到错误 Not Found in ExternalContext as a Resource
【问题讨论】:
【参考方案1】:你应该测试你提到的路径是否可达,如果路径不通,首先修复。
为什么不为这些错误代码创建一个导航案例,而不是使用相对路径,而是设置适当的 url。
window.location = "$request.contextpath/error/404";
举个例子:
mywebapp
|
|---WEB-INF
|
|---error
| |
| |---404.xhtml
(and so on)
在 web.xml 中:
<error-page>
<error-code>404</error-code>
<location>/error/404.xhtml</location>
</error-page>
同样适用于 500 错误代码。
【讨论】:
你能举个简单的例子吗..如何在jsf页面中设置路径。 还是同样的错误..在ExternalContext中找不到作为资源..这是什么意思.. 我这里没有必要的测试环境。 FacesServlet 的 servlet 映射在哪里。另请参阅:***.com/questions/13148624/… 也可以看到这个:***.com/questions/4915020/…【参考方案2】:AFAIK 您不能在 web.xml 中将 JSF 页面注册为错误页面。相反,您必须使用 JSP。
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
【讨论】:
是的,您可以使用 JSF 页面 @tmandry:我不明白这是为什么。你能解释一下吗?我对“* .xhtml”文件作为错误页面有同样的问题。它们不起作用。以上是关于配置到jsf中的错误页面时出错?的主要内容,如果未能解决你的问题,请参考以下文章
将 PrimeFaces 与 JSF 一起使用时 Shiro 重定向到错误的位置