sendRedirect无法正常工作

时间:2013-08-13 01:06:34

标签: tomcat spring-mvc tomcat7

我正在尝试重定向到其他页面。我已经使用jetty在我的机器上本地尝试了这个并且重定向正常工作。现在,如果我将war文件部署到tomcat并尝试重定向页面,我会收到此错误。

HTTP Status 500 - File "/WEB-INF/jsp/.jsp" not found
javax.servlet.ServletException: File "/WEB-INF/jsp/.jsp" not found
org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:229)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

我不确定为什么它不将文件名放在“WEB-INF / jsp / .jsp”中。

以下是发送重定向的java代码。

@RequestMapping(value="/surescriptstart", method=RequestMethod.POST)
public ModelAndView surescriptTes2t(SureScripts pro,HttpServletResponse response , HttpServletRequest request) throws IOException, ServletException{
if(verifySureScripts){
     ....
 Message = "You are done!";
 response.sendRedirect("done.html");
 }else{     
 response.sendRedirect("surescriptstart.html");
 }
     ....

这是servlet.xml的一部分

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

1 个答案:

答案 0 :(得分:3)

你从 surescriptTes2t 方法中返回什么?你必须返回一个空的视图名称,所以spring mvc尝试使用jsp在 /WEB-INF/jsp/.jsp 解决它而不是发送302重定向。

如果您只需要重定向,请尝试将其设为 void

public void surescriptTes2t