Spring 3 controller json formatを使用してデータを返す


タイトルという議題を実現するには、まず2つのパッケージを追加する必要があります.

<dependency>
       <groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-core-asl</artifactId>
	<version>1.5.6</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-mapper-asl</artifactId>
	<version>1.5.6</version>
</dependency>

次にspringがannotationをサポートすることを保証します.ここでは構成を書かないでください.
コントロールを見て

@RequestMapping(value="/content-type/{prodId}")
	@ResponseBody
	public Map<String,List<ContentType>> listContentTypeByProdJSONFormat(HttpServletRequest request,@PathVariable("prodId") int prodId)
	{
		List<ContentType> contentTypeList = contentTypeService.listContentTypeByProduct(prodId);
		Map<String,List<ContentType>> contentTypes = new HashMap<String,List<ContentType>>();
		contentTypes.put("contentTypes", contentTypeList);
		return contentTypes;
	}

@ResponseBody注記は、このcontrollerをtextテキスト形式で返すことを要求します.ここではMapタイプをバインドし、実際にはjsonオブジェクトを返します.フォーマットはmapがjsonを回転するフォーマットです.これによりajax呼び出し時にコールバック関数をこのように持つことができます.

success:function(data)
{
	var typeList = data.contentTypes;
	var length = typeList.length;
....
....
....
			
});

このcontentTypeはバックグラウンドcontrollerにバインドされたMapのkeyと一致しなければならないので、説明する必要はありません.