2

春とジャージと少し比較するだけです。

メソッドがxmlまたはjsonの両方を返すことが可能かどうか興味があります。

デフォルトはxmlかもしれませんが、jsonを返すオプションのフラグがあります。

可能?

4

2 に答える 2

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
于 2012-05-09T20:32:36.200 に答える
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 もサポートするように簡単に拡張できます。さらに読むには:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-multiple-representations

XML と Jersey を使用した例を投稿したいと思いますが、Jersey の Bean には詳しくありません。

于 2012-05-10T14:50:04.873 に答える