只是做一点与春季和运动衫比较。是否有可能在Spring和Jersey中返回xml或json?
好奇的是,如果方法可能返回xml或json。
也许默认为xml,但有一个可选标志将返回json。
可能吗?
只是做一点与春季和运动衫比较。是否有可能在Spring和Jersey中返回xml或json?
好奇的是,如果方法可能返回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之间的切换,但这种可以容易地扩充以支持XML为好,使用JAXB或一些其他XML串行化器。进一步阅读:
我会发布使用XML和新泽西州的例子,但我不熟悉的豆球衣。
如果get请求没有指定,它会默认第一个像json的东西吗? – loyalflow
@ user1361315我的经验是它会选择第一种类型,但我从来没有找到任何文档来确认行为。如果你有两个方法,每个方法都有不同的Produces,它将选择Java 7之前的第一个方法,以及Java 7中的随机方法。 –
@perception我认为它是json和html也是一个有效的组合,然后像json和XML 。正确? –