我自己不是jsp/maven/java开发人员,我正在尝试以通用的方式为webapp配置错误页面,而不涉及jboss的配置.
以下是我试图这样做的方法:在我的web.xml中,我已经设置好了
<error-page>
<error-code>*</error-code>
<location>/actions/erreur</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
在这里,我怀疑使用'*'作品,但那就是例子.然后,在我的strut-config.xml中
<action path="/erreur" forward="erreurView" />
Run Code Online (Sandbox Code Playgroud)
最后在我的tiles-def.xml中:
<!-- ERREURS -->
<definition name="erreurView" extends=".formPremiereConnexionLayout">
<put name="titrePage" value="Erreur"/>
<put name="body" value="/jsp/erreurs.jsp"/>
</definition>
Run Code Online (Sandbox Code Playgroud)
如果你有一个合适的答案,你明白了,感谢你的帮助.
最后一件事:即使任何服务器错误代码发送到一般错误视图,我想详细说明jsp中的错误.我认为一个小脚本会很好,再次买入,我不知道如何这样做.谢谢.
通配符不起作用.多么详细,您确实需要单独定义感兴趣的状态代码.例如
<error-page>
<error-code>403</error-code>
<location>/actions/erreur</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/actions/erreur</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/actions/erreur</location>
</error-page>
...
Run Code Online (Sandbox Code Playgroud)
最后一个侦听服务器可能抛出的所有异常/错误.但是你不能确定它是否会在a上显示java.lang.Error.
在错误页面中,您可以从请求范围和标题中获取重要的详细信息,如下所示:
<p>Request URI: <c:out value="${requestScope['javax.servlet.forward.request_uri']}" /></p>
<p>Exception type: <c:out value="${requestScope['javax.servlet.error.exception']}" /></p>
<p>Exception message: <c:out value="${requestScope['javax.servlet.error.message']}" /></p>
<p>HTTP status code: <c:out value="${requestScope['javax.servlet.error.status_code']}" /></p>
<p>HTTP user agent: <c:out value="${header['user-agent']}" /></p>
Run Code Online (Sandbox Code Playgroud)
如果你想打印堆栈跟踪,你必须在servlet/beanclass中编写它String,将它写入a 并将其放入请求范围,最后将其显示在一个<pre></pre>.
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |