2012-05-09 4 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를 가진 두 가지 메소드가있는 경우 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과 뉴저지를 사용하는 예를 게시 싶지만, 뉴저지의 콩에 익숙하지 않다.

관련 문제