ResponseBody応答jsonデータ

10974 ワード

  • DispatcherServiceletはすべてのリソースをブロックし、静的リソース(img、css、js)もブロックされ、使用できないという問題が発生します.問題を解決するにはspringmvcで静的リソースをブロックしないように構成する必要がある.xmlプロファイルは次の構成を追加します.
  • mvc:resourcesラベル構成フィルタなし
  • location要素は、webappディレクトリの下のパケットの下のすべてのファイル
  • を表す.
  • mapping要素は、/static/aまたは/static/a/b
  • のような/staticで始まるすべての要求経路を表す.
    	
    	<mvc:resources location="/css/" mapping="/css/**"/> 
    	<mvc:resources location="/images/" mapping="/images/**"/> 
    	<mvc:resources location="/js/" mapping="/js/**"/> 
    

  • @RequestBodyを使用して要求体データ
  • を取得する.
    //     
    $(function(){
    	//       
    	$("#btn").click(function(){
    		$.ajax({
    			url:"user/testJson",
    			contentType:"application/json;charset=UTF-8",
    			data:'{"addressName":"aa","addressNum":100}',
    			dataType:"json",
    			type:"post",
    			success:function(data){
    				alert(data);
    				alert(data.addressName);
    			}
    		});
    	});
    });
    
    /** 
    *         
    * @param body
    */
    @RequestMapping("/testJson")
    public void testJson(@RequestBody String body) {
    	System.out.println(body);
    }
    
  • @RequestBody注記を使用してjsonの文字列をJavaBeanのオブジェクト
  • に変換
    //     
    $(function(){
    	//       
    	$("#btn").click(function(){
    		$.ajax({
    			url:"user/testJson",
    			contentType:"application/json;charset=UTF-8",
    			data:'{"addressName":"aa","addressNum":100}',
    			dataType:"json",
    			type:"post",
    			success:function(data){
    				alert(data);
    				alert(data.addressName);
    			}
    		});
    	});
    });
    
    /**
    *         
    * @param body
    */
    @RequestMapping("/testJson")
    public void testJson(@RequestBody Address address) {
    	System.out.println(address);
    }
    
  • @ResponseBody注記を使用してJavaBeanオブジェクトをjson文字列に変換し、直接応答
  • メソッドは、JavaBeanのオブジェクト
  • を返す必要がある
    //     
    $(function(){
    	//       
    	$("#btn").click(function(){
    			$.ajax({
    			url:"user/testJson",
    			contentType:"application/json;charset=UTF-8",
    			data:'{"addressName":"  ","addressNum":100}',
    			dataType:"json",
    			type:"post",
    			success:function(data){
    				alert(data);
    				alert(data.addressName);
    			}
    		});
    	});
    });
    
    @RequestMapping("/testJson")
    public @ResponseBody Address testJson(@RequestBody Address address) {
    	System.out.println(address);
    	address.setAddressName("  ");
    	return address;
    }
    
    
  • json文字列とJavaBeanオブジェクトを互いに変換する過程でjacksonのjarパケット
  • を使用する必要がある.
    <dependency>
    	<groupId>com.fasterxml.jackson.coregroupId>
    	<artifactId>jackson-databindartifactId>
    	<version>2.9.0version>
    dependency>
    <dependency>
    	<groupId>com.fasterxml.jackson.coregroupId>
    	<artifactId>jackson-coreartifactId>
    	<version>2.9.0version>
    dependency>
    <dependency>
    	<groupId>com.fasterxml.jackson.coregroupId>
    	<artifactId>jackson-annotationsartifactId>
    	<version>2.9.0version>
    dependency>