2015-05-21 46 views
0

我需要將數據從客戶端html發回到彈簧控制器。 我有一個控制器,生成一個JSON數組,我通過ajax發送到html端,當請求時。 功能很好。 問題是我需要將Json數組發送回另一個控制器進行評估和更改。 如果我發佈數據並分配原始類的類對象,則會收到錯誤「錯誤請求」,但它不起作用。 如果我在控制器中分配消耗該帖子的對象。這工作 ,但我得到一個hashmap,我不知道如何訪問。 我無法將它轉換爲另一個類,也無法使用它來處理它。 由於我是新手,有人可以給我一個建議,如何使用接收控制器端的帖子 。返回從客戶端到彈簧控制器的json數組

謝謝

Khelvan。

控制器代碼IST陳述如下

控制器用於獲取

@RequestMapping("/Person") 
    @ResponseBody 
    public ArrayList<Person> ajax_Person_array() 
        { 
     ArrayList<Person> Dummy = new ArrayList<Person>(); 


     for (x=0; x < 5; x++){ 

      Dummy.setName("Alfon"); 
       Dummy.setID("5"); 
       Dummy.setStree("Delta"); 
       Dummy.setName("Neutral"); 

           Person.add(Dummy); 
        } 


     return Dummy; 
    } 

控制器2後

@RequestMapping(value="/ajax", method=RequestMethod.POST, consumes = "application/json") 
//public @ResponseBody String post(@RequestBody Object ajax_Person_array()) {  
    public @ResponseBody String post(@RequestBody  ArrayList<Person> ajax_Person_array()) {  
      System.out.println("First TEST"); 


      String Success = "OK"; 

     return Success; 
    } 

HTML:讓阿賈克斯

    var ajax_data; 

     $.ajax({ 
       url: "http://localhost:8080/Person", 
       async: false, 
       dataType:'json', 
      cache: false, 
      success: function (data) { 
      ajax_data = data; 
      alert("success "); 

      }, 
      error:function(){alert("something went wrong ");} 
       }); 
    } 

HTML發佈AJAX

$阿賈克斯({ 網址: 「http://localhost:8080/ajax」, 類型: 'POST', 數據類型: '文本',

  data: ajax_data, 
      // data: JSON.stringify(ajax_data), 
      contentType: 'application/json', 
      success: function(data) { 
       alert(data); 
      }, 
      error:function(data,status,er) { 
       alert("error: "+data+" status: "+status+" er:"+er); 
       document.write(data); 
      } 
     }); 

回答

0
@RequestMapping (value="/ajax", method=RequestMethod.POST, consumes = "application/json") 
public @ResponseBody JSONObject post(@RequestBody JSONObject person) { 

//Pass data to a service to process the JSON 
} 

爲了您的Ajax請求,不設置數據類型爲'文本'。將其設置爲JSON

$.ajax({ url: "http://localhost:8080/ajax", 
     type: 'POST', 
     dataType: 'json', 
     data: JSON.stringify(ajax_data), 
     contentType: 'application/json', 
     success: function(data) { 
      alert(data); 
     }, 
     error:function(data,status,er) { 
      alert("error: "+data+" status: "+status+" er:"+er); 
      document.write(data); 
     } 
    }); 
+0

我得到了一些進展。 – Khel