headers参数如何用于RequestMapping注释?

时间:2015-08-03 15:58:30

标签: java spring-mvc servlets header

当我在控制器方法内写:

response.setHeader("Content-Disposition", "attachment; filename=mockDump.csv");

效果很好。

但是当我添加@RequestMapping参数headers = {"Content-Disposition=attachment", "filename=mockDump.csv"}

方法不会调用。

为什么呢?

2 个答案:

答案 0 :(得分:1)

@RequestMapping标头描述了请求中必须存在的标头,以便将其路由到带注释的方法进行处理。在响应对象上调用setHeader设置要在repsonse中发送到客户端的标头

答案 1 :(得分:1)

作为@RequestMapping#headers javadoc

  

映射请求的标头,缩小主映射。

换句话说,headers适用于请求标头,有助于确定适当的处理程序方法。

如果你想要Spring方式添加响应头,即。不是通过HttpServletResponse,而是使用适当的ResponseEntity设置返回HttpHeaders