コールバック関数とJsonを返す3つの方法

4010 ワード

コールバック関数とJsonを返す3つの方法
1.コールバック関数:
onreadystatechangeイベント
リクエストがサーバに送信されると、応答ベースのタスクを実行する必要があります.
readyStateが変更されるたびにonreadystatechangeイベントがトリガーされます.
readyStateプロパティには、XMLHttpRequestのステータス情報が格納されます.
XMLHttpRequestオブジェクトの3つの重要なプロパティを次に示します.
 
 
ツールバーの
説明
onreadystatechange
readyStateプロパティが変更されるたびに呼び出される関数(または関数名)が格納されます.
readyState
XMLHttpRequestのステータスが保存されています.0から4に変化する.・0:要求未初期化(sendメソッドを呼び出さない)・1:サーバ接続確立(socket接続済み)・2:要求受信(パラメータ取得、actionメソッド実行なし)・3:要求処理中(actionメソッド実行中、未実行)・4:要求完了、応答完了(応答済み、最終データ取得可能)
status
200:「OK」(応答の状態)404:ページが見つかりません(ページが見つかりません)
 
 
onreadystatechangeイベントでは、サーバが処理の準備ができているときに実行するタスクを規定します.
readyStateが4に等しく、ステータスが200の場合、応答が完了したことを示します.
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
 
2.Jsonを返す3つの方法
1つ目:
@Autowired
MyFoodDaoImpl mdi;
/**
 *      json  
 * OutPutStream os;
 * os.write(     json-lib  json   .getByte())
 * @param foodname
 * @param out
 * @return
 * @throws IOException
 */
@RequestMapping(value="/queryFood",method={RequestMethod.GET,RequestMethod.POST})
public String queryFood(String foodname,OutputStream out) throws IOException{
List> list=mdi.queryAllFood(foodname);
JSONArray arry=JSONArray.fromObject(list);
String jsonStr=arry.toString();
out.write(jsonStr.getBytes("UTF-8"));
return null;
}

2つ目:
/**
 *           +   @ResponseBody
 *           
 * out.write(jsonStr.getBytes("UTF-8"));
 * @param foodname
 * @return
 * @throws IOException
 */
@ResponseBody
@RequestMapping(value="/queryFoodReturn",method={RequestMethod.GET})
public byte[] queryFoodReturn(String foodname) throws IOException{
List> list=mdi.queryAllFood(foodname);
JSONArray arry=JSONArray.fromObject(list);
String jsonStr=arry.toString();
System.out.println(jsonStr.getBytes("UTF-8"));
return jsonStr.getBytes("UTF-8");
}

3つ目:
@ResponseBody
	@RequestMapping(value="/queryFoodList",method={RequestMethod.GET})
	public List> queryFoodList(String foodname) throws IOException{
		List> list=mdi.queryAllFood(foodname);
		return list;
	}

メッセージ変換器の構成

		
		
			
			
				text/html
				application/x-www-form-urlencoded
			
			
		
		
			
				
					
						text/html
						application/x-www-form-urlencoded
					
				
			
		
	

  	
	  com.fasterxml.jackson.core
	  jackson-core
	  2.6.0
	
	
	  org.codehaus.jackson
	  jackson-core-asl
	  1.9.12
	
	
	  com.fasterxml.jackson.core
	  jackson-annotations
	  2.6.0
	
	
	  com.fasterxml.jackson.core
	  jackson-databind
	  2.6.0
	
	
	  org.codehaus.jackson
	  jackson-mapper-asl
	  1.9.12