zoukankan      html  css  js  c++  java
  • 前端Ajax传递Json数据,后端处理两种方式

    在这里只讨论在前端通过Ajax远程传输Json数据的,不讨论通过form的形式传递数据

    第一种方式:

      前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接受。

    前端写法:

     1  $().ready(function(){
     2       var obj = JSON.stringify({'userNo':'121589','processId':'15','processName':'测试审批','description':'这是一个测试'});
     3       alert(obj);
     4                
     5       //后台使用对象的形式接受
     6       $.ajax({
     7            url: "testJsonOne",
     8            type: "post",
     9            data: obj,
    10            contentType: 'application/json;charset=utf-8',
    11            success : function(data){
    12                 alert("haha");
    13            }
    14        }); 
    15                
    16  });

    特别要注意的点:

      1. contentType: 'application/json;charset=utf-8' ,指定数据是以Json的形式传递

      2.要传递的data,要是一个Json格式的字符串,最好先创建一个json对象,然后使用JSON.stringify()来转换成字符串形式

    后台写法:

    //对象形式接受前端数据
        @RequestMapping(value= "/testJsonOne",method = RequestMethod.POST)
        @ResponseBody
        public String testJson(@RequestBody PoMessageVo poMessageVo) {
            System.out.println(poMessageVo.toString());
            return "success";
        }

    注意点:

      1.前端数据和bean对象属性要一致

      2.会使用到@RequestBody注解,而这个注解要先导入jar包的,分别是jackson-core-asl-xxx.jar和jackson-mapper-asl-xxx.jar两个包

      3.注解用法不了解的话,百度一下

    第二种方式:

      有可能前端传递过来的数据很多很复杂,则我们可以在后端使用字符串的形式接受,具体的处理,我们在后端自己再处理。

    前端写法:

    //后台使用字符串的形式接受的
    $.ajax({
        url: "testJsonTwo",
        type: "post",
        //data: {jsonStr:'nihao'},
        data: {jsonStr:obj},
        //data: obj,
        //contentType: 'application/json;charset=utf-8',
        success : function(data){
            alert("haha");
        }
    });

    注意与上面的做比较:

      1. jsonStr指定后台只能以这个名称接受
      2. Ajax上不用指定contentType: 'application/json;charset=utf-8'

    后台写法:

    //以字符串的形式接受前端数据
    @RequestMapping(value= "/testJson",method = RequestMethod.POST)
    @ResponseBody
    public String testJson(String jsonStr) {
        System.out.println(jsonStr);
        
        //这里可以使用JsonMapper来处理jsonStr,比如转成需要的bean对象
        return "success";
    }
  • 相关阅读:
    ios启动画面
    不让精灵移除屏幕外 重写setPosition方法
    post和get请求方式的区别
    IOS开发之手势——UIGestureRecognizer 共存
    Xcode 中的GDB的命令
    [UIView beginAnimations:context:]与[UIView animateWithDuration:animations:]值得注意的一个区别
    应用图标 ICON
    cocos2d 1.01不能运行以前版本工程的问题
    SQL 中数据类型的转换 转
    SQL Server中sql语句执行时间
  • 原文地址:https://www.cnblogs.com/move22/p/7376315.html
Copyright © 2011-2022 走看看