只是和春天和球衣做一个小比较。
好奇一个方法是否可以同时返回 xml 或 json。
也许默认为 xml,但有一个可选标志将返回 json。
可能的?
您提到泽西岛,所以我假设您指的是 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
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。