【发布时间】:2011-03-25 20:27:07
【问题描述】:
我有一个提供文件(图像、pdf 等)的控制器:
@Controller
public class FileController {
@ResponseBody
@RequestMapping("/{filename}")
public Object download(@PathVariable String filename) throws Exception {
returns MyFile.findFile(filename);
}
}
如果我请求带有以下 Accept 标头的文件,我会得到 406:
Request URL: http://localhost:8080/files/thmb_AA039258_204255d0.png Request Method:GET Status Code:406 Not Acceptable Request Headers Accept:*/*
如果我使用以下 Accept 标头请求相同的文件,我会得到 200:
URL: http://localhost:8080/files/thmb_AA039258_204255d0.png Request Method: GET Status Code:200 OK Request Headers Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
这是我的 spring-mvc 上下文中唯一的视图解析器:
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" id="tilesViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
无论如何配置 spring mvc 以忽略 Accept 标头?我见过使用 ContentNegotiatingViewResolver 执行此操作的示例,但仅用于处理 xml 和 json。
【问题讨论】:
-
这是一个非常相似的问题,但对于 json:stackoverflow.com/questions/5315288/…
标签: java spring spring-mvc