与春季和平针织物进行一些比较。
如果方法可以同时返回xml或json,那就很奇怪。
也许默认为xml,但有一个可选的标志,它将返回json。
可能的?
答案 0 :(得分:4)
你提到泽西岛,所以我假设你指的是REST实现。如果您的资源设置正确,Jersey会自动将您的内容序列化为XML和JSON。您只需为@Produces
注释指明更广泛的媒体类型:
@GET
@Path("/somepath")
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
public MyBean getData() ;
其中MyBean
是适当的JAXB注释POJO。通过此资源端点定义,调用者可以通过Accept:
标头指定他们想要的内容类型:
GET http://www.example.com/somepath
Accept: text/xml
答案 1 :(得分:0)
Spring提供了一个ContentNegotiatingViewResolver,旨在提供此功能。文档中的示例:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="atom" value="application/atom+xml"/>
<entry key="html" value="text/html"/>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
描述了在HTML和JSON之间切换,但是使用JAXB或其他一些XML序列化程序也可以轻松扩展以支持XML。进一步阅读:
我发布了一个使用XML和Jersey的例子,但我不熟悉Jersey的bean。