"redirect:/new/url"
在 Spring 3 中返回时有没有办法指定 HTTP 状态码?
问问题
3164 次
2 回答
1
没有尝试过,但是查看它的来源org.springframework.web.servlet.view.RedirectView
有getHttp11StatusCode()
确定响应的HTTP状态的方法。
您似乎可以org.springframework.web.servlet.View#RESPONSE_STATUS_ATTRIBUTE
根据请求通过设置属性覆盖默认响应代码。简单设置:
httpServletRequest.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, status)
在返回“ redirect:
”视图之前。
于 2011-09-09T11:07:34.357 回答
0
正如Scolytus所指出的,您必须返回 aRedirectView
和statusCode
集合。使用"redirect:"
前缀将始终导致HttpStatus.MOVED_TERMPORARILY
(302) 状态。
String
如果您还需要从控制器方法返回的能力RedirectView
,则必须将方法签名更改为 return Object
。例子:
@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";
}
}
于 2016-06-17T23:06:22.823 回答