"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 回答