Java 在Spring MVC中更改返回的内容类型
我有一个带有自定义扩展名的zip文件,需要以内容类型application/zip的形式返回,但出于某种原因,无论我做什么,它总是以text/html的形式返回 在本文中配置内容协商管理器似乎可以做到这一点,但对我来说似乎不起作用。如果我通过相同的控制器/方法请求一个.zip文件,它将非常有效 为了实现我的目标,我尝试配置了几个不同的属性,但下面是我的application-context.xml中的最新内容Java 在Spring MVC中更改返回的内容类型,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个带有自定义扩展名的zip文件,需要以内容类型application/zip的形式返回,但出于某种原因,无论我做什么,它总是以text/html的形式返回 在本文中配置内容协商管理器似乎可以做到这一点,但对我来说似乎不起作用。如果我通过相同的控制器/方法请求一个.zip文件,它将非常有效 为了实现我的目标,我尝试配置了几个不同的属性,但下面是我的application-context.xml中的最新内容 <bean id="contentNegotiationManager"
<bean id="contentNegotiationManager"
class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="favorPathExtension" value="true" />
<property name="ignoreAcceptHeader" value="true" />
<property name="defaultContentType" value="application/zip" />
<property name="mediaTypes">
<map>
<entry key="xyz" value="application/zip" />
</map>
</property>
</bean>
看来我把问题复杂化了。我只需要在一个控制器方法上使用这个功能,所以只需将products=application/zip添加到我的RequestMapping就可以了
@RequestMapping(
value = "/download/{fileName:.+}",
method = RequestMethod.GET,
produces = "application/zip")
@ResponseBody
public FileSystemResource download(@PathVariable("fileName") String fileName) {
...
}
@RequestMapping(
value = "/download/{fileName:.+}",
method = RequestMethod.GET,
produces = "application/zip")
@ResponseBody
public FileSystemResource download(@PathVariable("fileName") String fileName) {
...
}