2巡目!
これまた先日ブログで書いた二番煎じですが、Spring MVCでJSONを返すViewの例です。
ソースはここにあります。
サーブレットの設定
とりあえず、ソースです。<beans:bean xmlns="http://www.springframework.org/schema/beans" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="mediaTypes"> <map> <entry key="json" value="application/json" /> </map> </property> <property name="defaultViews"> <list> <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <property name="prefixJson" value="true"/> </bean> </list> </property> </beans:bean>
ContentNegotiatingViewResolver は、リクエストのAccept headerやファイル名をもとにViewを解決します。
map で指定しているのは、 key がファイルの拡張子、 value がコンテンツタイプです。
defaultViews は、ViewResolverのチェーンでViewが解決できない場合に使われるViewを指定します。
今回は、ここで MappingJacksonJsonView を指定することでViewとして使用するようにしています。
コントローラー
こちらは非常にやっつけなコードになっていますw@RequestMapping(value = "/person/{id}", method = RequestMethod.GET) public @ResponseBody Person getPerson(@PathVariable int id, Model model) { Person person = new Person(); person.setId(id); person.setName("Tom"); return person; }
@ResponseBody をつけてPOJOを返すことでレスポンスはJSONになります。
以下のサイトで詳しく説明されています。 #私が今書いている意味って(ry
上のコードでは、以下のようなJSONが出力されます。
{"name":"Tom","id":1}
最後に
今回は MappingJacksonJsonView でしたが、他にもSpringで使えるViewはあるので、それらをうまく使うといろいろなことを簡単に行えそうですね。8日目は @mike_neck さん、よろしくお願いします!
0 件のコメント:
コメントを投稿