2012-08-23 39 views
0

我们在我们的struts 1.1应用程序中使用自定义http状态代码。它们在web.xml的<error-page>定义下定义。我遇到的问题是我们的错误页面(也在web.xml中为这些状态码定义)没有显示这些状态码。但是,它会显示正常的400和500状态码。我需要做些什么来获得自定义http状态码来调用我们的自定义错误页面吗?目前我正在使用为大于599的状态代码显示自定义错误页面

response.sendError(601, "custom message") 

触发错误状态,但它总是进入默认的tomcat错误页面。如果需要,我可以显示更多代码。

这里是错误页面定义:

<error-page> 
    <error-code>601</error-code> 
    <location>/jsp/Error.jsp?errorCode=601</location> 
</error-page> 

感谢

+0

您是否可以发布您的定义? – crnlx

回答

0

在示例webapp的web.xml中使用错误页面定义可以很好地适用于Tomcat 5.0.28和Struts 1.1。刚刚检查。 作为解决方法,您可以将请求中的错误代码/ msg设置为始终转发到错误页面

+0

你是否使用response.sendError()来让它重新出现错误状态? 我将如何设置请求中的错误代码始终转发到错误页面? – malificent

+0

好的,我想我已经消除了它与状态码或错误页面定义的类型有关。我得到它与一个正常的请求,并强制与response.sendError()的错误状态。我认为这个问题与我试图以错误状态回复的具体情况有关。我会接受你的回答,并发布针对我的问题的另一个问题。谢谢。 – malificent

0

超过599状态码不允许在HTTP。所以:不要。

+0

可能是这种情况,但是当通过resonse.sendError()设置时,tomcat仍然显示正确的状态码。我的问题是,为什么它不会使用我的自定义错误页面,而不是http允许的。 – malificent

+0

你使用哪个Tomcat版本?你有更多的信息,如行动映射?使用Tomcat 7.0.29和Struts 1.3.10,通过在操作类中设置自定义错误代码,转发到错误页面没有任何问题。我假设你使用相同的error.jsp作为其他错误,只有参数不同。 –

+0

很遗憾,我们使用Tomcat 5.0.28。是的,我们对每个状态代码都使用相同的Error.jsp,对于每个状态代码使用不同的参数。 – malificent

相关问题