-1

現在、これは機能していますが、なぜこの問題が発生したのかわかりません..

私は以下に従いました

http://pfelitti87.blogspot.co.uk/2012/07/rest-services-with-spring-3-xml-json.html

しかし、コントローラーのメソッドを変更し、@ResponseBody を追加しました...

@ResponseBody
@ResponseStatus(HttpStatus.OK)
@RequestMapping(value="/names", method=RequestMethod.GET)
public List<Book> getNames() {

  return returnData();
}

これを追加することで、指定した拡張子に関係なく、出力がjsonとして表示されることに気付きました...

@RepsonseBody がこの問題を引き起こす理由はありますか?

4

1 に答える 1

2

この投稿は、さまざまなタイプに基づいてさまざまなビューを解決する場合にのみ機能します。あなたのケースでは機能しません。

Spring 3.2.x を使用している場合は、以下の構成で問題が解決します。

 <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>

  <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="true"/>
    <property name="mediaTypes">
      <value>
        json=application/json
        xml=application/xml
      </value>
    </property>
    <property name="defaultContentType" value="application/json"/>
  </bean>

ただし、3.1.x を使用している場合は、http://tedyoung.me/2011/07/28/spring-mvc-responsebody や http://springinpractice.com/2012/02/22/supporting- のようなアプローチがあります。 xml-and-json-web-service-endpoints-in-spring-3-1-using-responsebodyが役立つかもしれません。

于 2013-01-20T16:41:59.270 に答える