我正在使用Spring3.0,并有如下内容

@ResponseBody
@RequestMapping(method = RequestMethod.POST, value = "/someUrl")
public String handleSomeUrl(@RequestParam(required = true) Long someId){
    // ...
    return someString;
}

我有一个带有posthandle的拦截器,它被调用并在响应上设置一些no-cache头。但是,当响应返回到浏览器时,所有这些缓存头都将消失。有趣的是,如果我删除@responseBody注释并使用响应编写器,我会看到拦截器设置的头。为什么@responsebody会覆盖我的标题?
注:
如果我执行以下操作,我还会在响应中看到正确的标题。这和我截取程序的后句柄做的完全一样。
@ResponseBody
@RequestMapping(method = RequestMethod.POST, value = "/someUrl")
public String handleSomeUrl(@RequestParam(required = true) Long someId, HttpServletRequest request, HttpServletResponse response){
    response.setHeader("Cache-Control","no-store, no-cache, must-revalidate");
    return someString;
}

最佳答案

可能与此有关。它有以下评论:
我认为混合和
httpservletresponse的使用
还有@responsebody。

10-07 23:12