如何在Spring MVC中设置响应头

我想在其中设置响应头缓存控制和编译指示的方法:

public String addUser(@Valid User user, BindingResult bindingResult)

{

if(bindingResult.hasErrors())

{

bindingResult.getFieldError();

return"edit";

}

return "redirect:/welcome/profile/"+user.getName();

}

在这种方法中,我想像使用HttpservletResponse调用setHeader方法在简单servlet代码中那样设置缓存控制和编译指示:

response.setHeader("Cache-Control","no-cache,no-store,must-revalidate");

response.setHeader("Pragma","no-cache");

response.setDateHeader("Expires", 0);

我搜索了spring文档,找不到任何直接方法,但是我发现了这一点:

@RequestMapping("/something")

public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException

{

String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader"));

byte[] requestBody = requestEntity.getBody();

HttpHeaders responseHeaders = new HttpHeaders();

responseHeaders.set("MyResponseHeader", "MyValue");

return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);

}

但是我不知道怎么用

回答:

如果要为控制器的每个响应设置标题,则可以使用@ModelAttribute注释。

@ModelAttribute

public void setVaryResponseHeader(HttpServletResponse response) {

response.setHeader("Vary", "Accept");

}

以上是 如何在Spring MVC中设置响应头 的全部内容, 来源链接: utcz.com/qa/434681.html

回到顶部