简短的答案是,将InternalResourceViewResolver的redirectHttp10Compatible属性设置为false:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
<property name="redirectHttp10Compatible" value="false" />
</bean>
您可以改为根据每个请求执行此操作,方法是让处理程序方法返回View而不是String,然后自己创建RedirectView,然后调用setHttp10Compatible(false)
。
(原来的罪魁祸首是HttpServletResponse.sendRedirect,RedirectView用于HTTP 1.0兼容的重定向,但不是这样。我想这意味着它取决于您的servlet容器的实现(?);我在Tomcat和Jetty中都观察到了这个问题。 )