我有一个带有以下mvc设置的Spring 3.2.4应用程序:
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON);
configurer.mediaType("json", MediaType.APPLICATION_JSON);
configurer.mediaType("xml", MediaType.APPLICATION_XML);
}
当我访问我的控制器的网址时,例如/rest/products.json我得到了JSON响应,并通过/rest/products.xml我得到了预期的XML。
但是当我访问/ rest / products时,我获得了XML,但是我将JSON设置为默认内容类型。
这似乎被Spring忽略了。
答案 0 :(得分:1)
当请求路径都不使用时,将使用此内容类型 扩展,也不是请求参数,也不是Accept标头可以提供帮助 确定所请求的内容类型。
因此,至少有三种方法可以告诉Spring您尝试接收哪种格式。我的猜测是,你仍然以某种方式告诉Spring你想要用XML获取数据,可能是在一个请求参数中,或者 - 更可能是因为它不可见 - 在一个标题中。
尝试检查您的请求标题。