在Spring3控制器中返回字符串时,为重定向设置HTTP状态代码
在Spring 3中返回在Spring3控制器中返回字符串时,为重定向设置HTTP状态代码,spring,spring-mvc,redirect,spring-3,Spring,Spring Mvc,Redirect,Spring 3,在Spring 3中返回“redirect:/new/url”时是否有指定HTTP状态代码的方法?没有尝试过,但是查看org.springframework.web.servlet.view.RedirectView的源代码,它有getHttp11StatusCode()方法来确定HTTP响应状态 您似乎可以通过设置org.springframework.web.servlet.View#response_STATUS_属性在请求时覆盖默认响应代码。简单设置: httpServletReques
“redirect:/new/url”
时是否有指定HTTP状态代码的方法?没有尝试过,但是查看org.springframework.web.servlet.view.RedirectView
的源代码,它有getHttp11StatusCode()
方法来确定HTTP响应状态
您似乎可以通过设置org.springframework.web.servlet.View#response_STATUS_属性
在请求时覆盖默认响应代码。简单设置:
httpServletRequest.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, status)
在使用“redirect:
”视图返回之前。As,必须返回设置了statusCode
的RedirectView
。使用“重定向:”
前缀将始终导致状态为HttpStatus.MOVED\u不时地(302)
如果需要从控制器方法以及重定向视图返回字符串,则必须将方法签名更改为返回对象。例如:
@RequestMapping
public Object someMethod() {
if (doRedirect) {
RedirectView rv = new RedirectView("/new/url");
rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY); // set our own status code
return rv;
} else {
return "someView";
}
}
这不起作用,而且很可能从未起过作用;)