天天看点

AJAX请求及JSON数据处理(SpringMVC)简介:

简介:

AJAX: Asynchronous JavaScript and XML(异步的JavaScript和XML)

JSON: JavaScript Object Notation(JavaScript 对象表示法)

请求常用格式

var 变量名= $.trim($("#标签id").val());             //获取标签内容
$.ajax({
  type:"POST",                                     //请求方式(get…)
  url:'请求地址'            ,                       //请求地址
  data:{key:变量名,key:"value",…},                 //发送的数据
  dataType:'json',                                 //发送的数据格式
  cache:false,                                     //不使用缓存(使用缓存)
  async:false,                                     //同步请求(异步请求)
  success: function(data){                         //回调函数
      data数据处理                                 //data为后台返回的数据 
  }
});
           

Json数据处理

后台处理

请求Json处理

1: 以RequestParam的方式接收

@RequestMapping(value = "/update")

@ResponseBody

public String updateAttr(@RequestParam ("id") int id) { //作为参数

    int res=accomodationService.deleteData(id);         //函数内部可以直接使用

    return "success";

}
           

2以实体类的方式接收

@RequestMapping(value = "/add")

@ResponseBody

public String addObj(@RequestBody Accomodation accomodation) { //实体类作为参数

       this.accomodationService.insert(accomodation);          //内部直接使用

       return "success";

}
           

3以map进行接收

@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody Map<String, String> map) {  //map作为参数
    if(map.containsKey("id"){
        Integer id = Integer.parseInt(map.get("id"));
    }
    if(map.containsKey("name"){

        String objname = map.get("name").toString();
    }
     return "success";
}
           

4以list进行接收

@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody List<Accomodation> list) {
    for(Accomodation accomodation:list){
        System.out.println(accomodation.toString());
    }
    return "success";
}
           

注:   这只是简单的接收前台数据的方式,企业中更多是自己进行请求数据的封装,如pagedata等专门用来进行前端数据的处理和使用,或者分页的工具类等等,当然如果大家有兴趣可以利用上述方法进行简单的前端请求数据封装,在业务逻辑较为复杂的情况下,会极大的提高效率,controller中也不需要再对数据进行格式化处理.

返回Json处理

1采用@ResponseBody注解

 @ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。

@ResponseBody通过HttpMessageConverter中的方法实现控制层的数据转化为json格式的字符串,至于转化的方法,大家可以去查看源码.

2使用JSON-lib工具包进行数据转换

JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包.

    具体包的使用在这里就不多做赘述了.

关于前台处理的补充

注:       

给对应的input赋值使用 $("#id").val(json.id),

将json类型字符串转换为json对象 var json=eval("("+data+")"),

可以使用 JSON.parse()方法将数据转换为JavaScript对象,

可以使用 JSON.stringify()方法将 JavaScript对象转换为字符串.