zoukankan      html  css  js  c++  java
  • spring 接收前台ajax传来的参数的几个方法

    知识补充

    JSON.stringify(), 将value(Object,Array,String,Number...)序列化为JSON字符串
    JSON.parse(), 将JSON数据解析为js原生值
    toJSON(), 作为JSON.stringify中第二个参数(函数过滤器)补充

    1.传过来的单一的参数 不设计json

      	<script type="text/javascript">
    		$(function(){
    		var params = {name:"aaa"};
    		$.ajax({
    			  type: "post",
    	            url: "/paike/cltc/paiKeTest",
    	            data: params,//非常重要的一步
    	            datatype: "json",
    		 
    		    success:function(){
    		    	alert(3);
    		    	
    		    }
    		    })
    		})
    		
    		</script>
    		
    

      springMvc后台接收方式为

    @RequestMapping(value = "paiKeTest",method = RequestMethod.POST)
    	@ResponseBody
    	public  String emrSubmit( @RequestParam(value="name")String name){
    		
    		System.out.println("JSONTOJAVAOBJ==================="+name);
    		
    		return null;  
    	}
    		
    

      2.$符号前面的都为页面的参数

    <script type="text/javascript">
    		$(function(){
    		var mall = {
    				classid: $("#classid").val().trim(),
    				teacherid: $("#teacherid").val().trim(),
    				courseid: $("#courseid").val().trim(),
    				time: $("#time").val().trim(),
    				start: $("#start").val().trim(),
    				end: $("#end").val().trim()
    	        };
    		
    		  $.ajax({
    	            type: "post",
    	            url: "/paike/cltc/paiKe",
    	            data:{ds:JSON.stringify(mall)},//非常重要的一步 传过来的市String类型的json
    	            datatype: "json",
    	            success: function (){
    	                alert(1);
    	            }
    	        })
    		
    		})
    		</script>
    

      springMvc接收值得方式为:

    @RequestMapping(value = "paiKe",method = RequestMethod.POST)
    	@ResponseBody
    	public String paiKe(@RequestParam(value="ds")String str) {
    		System.out.println("++++++TTTT============");
    		
    		
    		System.out.println(str);
    		
    		
    		return null;
    	}
    

      *重点:后台解析:

    1.导入相关jar包

    <1> 单条解析

    JSONObject jsonObject = JSONObject.fromObject(jsonStr);

    User user =  (User) JSONObject.toBean(jsonObject, user.class);

     <2> 多条用数组解析

    前台json格式的数据如何传入后台

    1. 将要传入后台的数据组装成JSON格式的字符串:

    var jsonStr = [{'name':'jim' , 'age':20} , {'name':'king' , 'age':26},{'name':'jge' , 'age':30}]

    2. 使用jQuery的ajax请求后台

    jQuery.ajax({
    
    type: "post",
    
    url: url,
    
    dataType : 'json',
    
    data : {'mydata':jsonStr},
    
    success: function(data,textStatus){
    
    alert("操作成功");
    
    },
    
    error: function(xhr,status,errMsg){
    
    alert("操作失败!");
    
    }
    
    });
    

      

    3.后台数据的接收与解析:

     

    // 解析多条
    
    		JSONArray jsonArray = JSONArray.fromObject(jsonStr);
    
    		for (int i = 0; i < jsonArray.size(); i++) {
    
    			JSONObject jsonObject = jsonArray.getJSONObject(i);
    			Cltc cltc = (Cltc) JSONObject.toBean(jsonObject, Cltc.class);
    
    		}
    

      

    String jsonStr = ServletActionContext.getRequest().getParameter("mydata");

    JSONArray jsonArray = JSONArray.fromObject(jsonStr);

    for(int i=0;i<jsonArray.length(); i++){

    JSONObject jsonJ = jsonArray.getJSONObject(i);

    jsonJ.getInt("name");

    jsonJ.getString("age");

    }

    4. 操作完成

    字符串和json对象和json对象数组相互转换

    var jsonStr  = "{"userId":"001"}";  // json对象字符串
    var jsonArryStr = "[{"userId":"001"},{"userId":"002"}]"; // json数组字符串
    var jsonObj  = JSON.parse(jsonStr);     // 字符串转为json对象
    var jsonArry = JSON.parse(jsonArryStr); // 字符串转为json数组
    var jsonStr  = JSON.stringify(jsonObj); // json对象转为字符串
    var jsonArryStr=JSON.stringify(jsonArry);// json数组转为字符串
  • 相关阅读:
    Redis集群搭建-韩国庆
    韩国庆讲师 个人简介
    iOS XML解析使用-韩国庆
    iOS移动开发CoreDate讲解
    多线程讲解韩老师
    MJRefresh在Xode6中报错处理
    调用第三方提供的webService服务(4)
    使用JDK开发WebService(3)
    WebService相关概念介绍(2)
    WebService的相关概念(1)
  • 原文地址:https://www.cnblogs.com/charlypage/p/8849188.html
Copyright © 2011-2022 走看看