[英]Spring MVC REST - Returning xml or json according to request content type
I'm trying to create RESTful Web Service which will return json or xml according to request content type: 我正在尝试创建RESTful Web服务,它将根据请求的内容类型返回json或xml:
My controller looks like this: 我的控制器如下所示:
@Controller
public class RESTController {
@RequestMapping(value="/rest/{id}", method=RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable Long id){
User user = .....
return user;
}
My User Class looks like this: 我的用户类如下所示:
@XStreamAlias("user")
public class User {
private long id;
private String firstName;
private String lastName;
other setters and getters..............
}
and finally my Servlet.xml looks like this: 最后我的Servlet.xml如下所示:
<mvc:annotation-driven />
<context:annotation-config />
<context:component-scan base-package="com.vanilla.rest.controllers" />
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="ignoreAcceptHeader" value="true" />
<property name="favorPathExtension" value="false" />
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<list>
<ref bean="xmlView"/>
<ref bean="jsonView"/>
</list>
</property>
</bean>
<bean id="jsonView"
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="contentType" value="application/json;charset=UTF-8"/>
<property name="disableCaching" value="false"/>
</bean>
<bean id="xmlView"
class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="contentType" value="application/xml;charset=UTF-8"/>
<constructor-arg>
<ref bean="xstreamMarshaller"/>
</constructor-arg>
</bean>
<bean id="xstreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="autodetectAnnotations" value="true" />
<property name="annotatedClass" value="com.vanilla.rest.entities.User"/>
</bean>
My problem is that no matter what content type I'm sending i'm always getting JSON response. 我的问题是,无论我发送哪种内容类型,我总是会收到JSON响应。
Looks like you need to add 看起来您需要添加
Accept: application/xml
to your request headers. 到您的请求标头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.