Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Spring3控制器中返回字符串时,为重定向设置HTTP状态代码_Spring_Spring Mvc_Redirect_Spring 3 - Fatal编程技术网

在Spring3控制器中返回字符串时,为重定向设置HTTP状态代码

在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

在Spring 3中返回
“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";
    }
}

这不起作用,而且很可能从未起过作用;)