2012-05-09 6 views

答えて

4

あなたはJerseyに言及しているので、REST実装を指していると思います。あなたのリソースが適切に設定されていると、JerseyはあなたのコンテンツをXMLとJSONとして自動的にシリアル化します。あなたは自分の@Produces注釈のためのメディアタイプの広い範囲を示すために持っている:MyBeanが適切にJAXBある

@GET 
@Path("/somepath") 
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML}) 
public MyBean getData() ; 

はPOJOを注釈付き。このリソースのエンドポイント定義では、発信者は、彼らがAccept:ヘッダを経由して何をしたいコンテンツタイプを指定することができます

GET http://www.example.com/somepath 
Accept: text/xml 
+0

getリクエストで指定されていない場合は、デフォルトでjsonのように最初になりますか? – loyalflow

+0

@ user1361315私の経験では、最初のタイプが選択されますが、動作を確認するためのドキュメントは見つかりませんでした。それぞれ異なるProducesを持つ2つのメソッドがある場合は、Java 7より前の最初のメソッドとJava 7のランダムメソッドを選択します。 –

+0

@perception jsonとhtmlもjsonとXMLのような有効な組み合わせであると仮定します。正しい? –

0

春には、この機能を提供することを目的と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とジャージーを使用した例を掲載したいが、私はニュージャージーのための豆に慣れていませんよ。

関連する問題