【发布时间】:2015-02-14 14:58:54
【问题描述】:
我正在尝试在 Spring MVC 中实现二进制内容控制器。
一切正常,但我想在响应中添加缓存控制标头。
我检查了这个相关问题:Unable to cache images served by Spring MVC
但它使用了不同的方法。我想使用这个 requestMapping - 产生注释。到目前为止,这是我所拥有的,但我不确定如何使用缓存控制元素设置响应标头。
@RequestMapping(value="/binaries/**", method = RequestMethod.GET, produces={MediaType.TEXT_PLAIN_VALUE, MediaType.APPLICATION_JSON_VALUE, MediaType.IMAGE_GIF_VALUE,
MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE})
public @ResponseBody byte[] serveResource(WebRequest webRequest, String uri) throws IOException {
String path = (String)request.getAttribute( HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE );
BinaryFile bf = binaryService.findByUri(path.replaceFirst("/binaries", ""));
if (webRequest.checkNotModified(bf.getLastModifiedDate().toDate().getTime()))
{
return null;
};
return bf.getResource();
}
【问题讨论】:
标签: spring-mvc