如何通过注释在Spring MVC 3中设置标头没有缓存?不是
response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0);
没有这样的选择。您可以使用拦截器:
<mvc:annotation-driven/> <mvc:interceptors> <bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <property name="cacheSeconds" value="0"/> <property name="useExpiresHeader" value="true"/> <property name="useCacheControlHeader" value="true"/> <property name="useCacheControlNoStore" value="true"/> </bean> </mvc:interceptors>
(从这里拍摄)
一方面,没有这种注释是合乎逻辑的。spring-mvc方法的注释主要是让容器确定要调用的方法(受请求标头,请求url或方法限制)。控制响应不属于此类别。
另一方面- 是的,拥有这些将很方便,因为在对控制器进行单元测试时,它与测试HTTP标头无关(或者是?)。还有@ResponseBody和@ResponseStatus,它们确实指定了一些响应属性。
@ResponseBody
@ResponseStatus