我正在尝试重定向到其他页面。我已经使用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>
答案 0 :(得分:3)
你从 surescriptTes2t 方法中返回什么?你必须返回一个空的视图名称,所以spring mvc尝试使用jsp在 /WEB-INF/jsp/.jsp 解决它而不是发送302重定向。
如果您只需要重定向,请尝试将其设为 void :
public void surescriptTes2t