2015-05-21 51 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