精华内容
参与话题
问答
  • 转自:... 数据:{name:"zhangfan",age:"18"}这种形式的ajax都会被转换成name=zhangfan&age=18进行传输。 ajax: ...url:"/testmap/testMap", type:"po...

    转自:https://blog.csdn.net/zf18234031156/article/details/84298270

    数据:{name:"zhangfan",age:"18"}这种形式的ajax都会被转换成name=zhangfan&age=18进行传输。

    ajax:

    $.ajax({

        url:"/testmap/testMap",

        type:"post",

        dataType: "json",

        data:{name:"zhangfan",age:"18"}

    })

    后台接收:

    1.通过变量接收 :只要变量名称与参数名称一致即可,也可以添加@RequestParam (通常在变量名和参数名一致的情况下省略

    @RequestMapping("/jsontest")
    public void test(String name,Integer age  )

    2.通过pojo对象接收:对象的属性名与参数一致即可,也可以给对象添加@RequestParam (通常在变量名和参数名一致的情况下省略

    @RequestMapping("/jsontest")
    public void test(User user  ){
        String name = user.getName();
        Integer age = user.getAge();
    }

    3.Map接收:@RequestParam 
     

    public void testMap (@RequestParam Map<String,Object> info){
        Object name = info.get("name");
        Object age = info.get("age");
        System.out.println("name:"+name+"age:"+age);
    }
    

     4.字符串接收,然后JSON转换

    public void test(@RequestBody String jsonData) {
        JSONObject jsonObject = JSON.parseObject(jsonData);
        String uname= jsonObject.getString("name");
        Integer age= jsonObject.getInteger("age");
     }

    转自:https://www.jianshu.com/p/003fec392fd4

    content-type的含义

    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。

    一个疑问:js中传递JSON数据时,为啥有时候要转成JSON字符串,有时候又不用转呢?

    1. 转成JSON字符串传递方式
      前端使用contentType:“application/json; charset=utf-8”的时候,必须要将JSON对象转换为JSON字符串**
    var user= {"username" : username,
               "password" : password};
              
    $.ajax({
            url : "http://...../jsontest.do",
            type : "POST",
            async : true,
            contentType: "application/json; charset=utf-8",
            data : JSON.stringify(user),
            dataType : 'json',
            success : function(data) {
            }
     });

    后端参数的用法不灵活,必须使用@RequestBody,这种方式下所有的参数都只能封装在User对象中,不能单独设置参数** 

    @RequestMapping("/jsontest")
    public void test(@RequestBody User user  ){
        String username = user.getUsername();
        String password = user.getPassword();
    }
    或者
    @RequestMapping("/jsontest")
    public void test(@RequestBody Map map  ){
        String username = map.get("username").toString();
        String password = map.get("password").toString();
    }
    或者
    public void test(@RequestBody String jsonData) {
        JSONObject jsonObject = JSON.parseObject(jsonData);
        String username= jsonObject.getString("username");
        String username= jsonObject.getString("password");
     }

     

    2.不用转成JSON字符串传递方式

    此时请求的ContentType默认是application/x-www-form-urlencoded**
    后端不用使用@RequestBody,前端参数可以直接使用JSON对象(也可以使用JSON字符串)

    $.ajax({
        url : "http://...../jsontest.do",
        type : "POST",
        async : true,
        data : user,
        dataType : 'json',
        success : function(data) {
        }
    });
    
    //后端参数的写法也很灵活:
    @RequestMapping("/jsontest.do")
    public void test(User user,String username,String password,Boolean rememberMe){
        System.out.println(user);
        System.out.println("username: " + username);
        System.out.println("password: " + password);
        System.out.println("rememberMe: " + rememberMe);
        
    }

    3.上传文件方式
    content-type是multipart/form-data
    我们使用表单 上传文件 时,必须让<form>表单的enctype属性值为 multipart/form-data.

    解答上面的疑问

    两种方式都可以传递json数据,不过application/json方式前端必须传递的是JSON字符串,后端必须使用RequestBody接收,不是那么的灵活,而默认的application/x-www-form-urlencoded方式相对来说更加灵活

    转自:https://blog.csdn.net/chehec2010/article/details/85275129

    传递MAP到后端
     

    向后端传一个参数

    /**
     * 前端ajax代码部分
     */
     
    var map = '{"account":"' + account + '"}';
    //设定一个事件触发ajax
    $.ajax({
        type : 'POST',
        contentType : 'application/json;charset=utf-8',
        url : "/",
        processData : false,
        dataType : 'json',
        data : map,
        success : function(data) {
            if(data == 1) {
                $("#text").html('<font color="#000000">aaa</font>');
            } else if(data == 0) {
                $("#text").html('<font color="#000000">aaa</font>');
            } else {
                $("#text").html('<font color="#000000">aaa</font>');
            }
        },
        error : function() {
            $("#text").html('<font color="#000000">aaa</font>');
        }
    });
    

    后端

    /**
     * 后端controller代码部分
     */
     
    @RequestMapping("/")
    public @ResponseBody Integer ajaxDemo(@RequestBody Map map) {
        try {
            //接收前端传递的map
            String str = (String) map.get("account");
            //假设做了一系列操作,判断是否return 0
            if() return 0;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 1;
    }
    

    传多个参数

    /**
     * 前端ajax代码部分
     */
     
    var map = '{"id":"' + $("#id").val() 
                + '","name":"' + name
                + '","price":"' + price
                + '"}';
    // 设定一个事件触发ajax
    $.ajax({
        type : 'POST',
        contentType : 'application/json;charset=utf-8',
        url : "/",
        processData : false,
        dataType : 'text',
        data : map,
        success : function(data) {
            var users = eval("("+data+")"); 
            var str = "";
            //用循环输出 users, i为index位置, user为每次循环的当前元素
            $.each(users, function (i, user) {  
                str += 'Account: <font size="3"><b>' + user.account + ' </b></font> '
                + ' Name: <font size="3"><b>' + user.name + '</b></font>';
                str += '<a href="/?id='+ user.account + '&name=' + user.name + '" onclick="click();">aaa</a>';
                str += '<hr align="left" width="20%">';
            }); 
            //将 str 在页面中输出
            $("#List").html(str);
        },
        error : function() {
            $("#List").html('');
        }
    });
    

    后端

     
     
    @RequestMapping("/")
    public @ResponseBody List<User> ajaxDemo(@RequestBody Map map) {
        List<User> list = null;
        try {
            //接收前端传递的map
            String str = (String) map.get("id");
            String str = (String) map.get("name");
            String str = (String) map.get("price");
            //假设做了一系列操作
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }
    

     

    展开全文
  • http get请求参数封装成map

    千次阅读 2019-03-08 15:37:10
    httpget请求参数工具类: public class UrlSpiltUtils { /** * 小程序拼接 * @param url * @return */ public static String urlSpilt(String url) { if (StringUtils.isNotBlank(url)) { if (url....

    http get请求参数工具类:

    public class UrlSpiltUtils {
    	/**
    	 * 小程序拼接
    	 * @param url
    	 * @return
    	 */
    	public static String urlSpilt(String url) {
    		if (StringUtils.isNotBlank(url)) {
    			if (url.startsWith("https://shop.m.suning.com/")) {//店铺页拼接url
    				String shopHtml = url.split("/")[3].split("\\.")[0];
    				String relShopHtml;
    				if (8 == shopHtml.length()) {
    					relShopHtml = "00" + shopHtml;
    				} else if (10 == shopHtml.length()) {
    					relShopHtml = shopHtml;
    				} else {
    					return null;
    				}
    				return "/pages/shop/index/index?shopId=" + relShopHtml;
    			} else if (url.contains("/pages/cuxiao/")) {//活动促销页-原生
    				return url;
    			} else if (url.contains("cuxiao.m.suning.com")) {//活动促销页-H5页面(泰坦)
    				return "/pages/webView/index?webViewSrc=" + url;
    			} else if (url.startsWith("https://m.suning.com/product/")) {//四级页
    				String shopId = url.split("/")[4];
    				String productId = url.split("/")[5].split("\\.")[0];
    				return "/pages/fourth/fourth?productId=" + productId + "&shop=" + shopId + "&title=";
    			}
    		}
    		return null;
    	}
    
    	/**
    	 * 将url中参数封装成map
    	 * @param url
    	 * @return
    	 */
    	public static Map<String, String> getUrlMap(String url) {
    		Map<String, String> map = new HashMap<String, String>();
    		URL urls = null;
    		try {
    			urls = new URL(url);
    			String param = urls.getQuery();
    			if (StringUtils.isNotBlank(param)) {
    				String[] arr = param.split("&");
    				for (String s : arr) {
    					String key = s.split("=")[0];
    					String value = s.split("=")[1];
    					map.put(key, value);
    				}
    			}
    		} catch (MalformedURLException e) {
    			log.warn("getUrlMap", "MalformedURLException e={}" + e);
    		}
    		return map;
    	}
    
    	/**
    	 * hashMap 转化成表单字符串
    	 * @param map
    	 * @return
    	 */
    	public static String map2Form(Map<String, String> map) {
    		StringBuilder stringBuilder = new StringBuilder();
    		if (map == null || map.size() == 0) {
    			return stringBuilder.toString();
    		} else {
    			for (Map.Entry<String, String> entry : map.entrySet()) {
    				stringBuilder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
    			}
    			return stringBuilder.substring(0, stringBuilder.length() - 1);
    		}
    	}
    
    
      /**
         * 表单字符串转化成 hashMap
         *
         * @param orderinfo
         * @return
         */
        public static HashMap<String, String> form2Map( String orderinfo) {
            String listinfo[];
            HashMap<String, String> map = new HashMap<String, String>();
            listinfo = orderinfo.split("&");
            for(String s : listinfo)
            {
                String list[]  = s.split("=");
                if(list.length>1)
                {
                    map.put(list[0], list[1]);
                }
            }
            return map;
        }
    
    
    }

     

    展开全文
  • 1、创建一个String形式的list, 可以将list转为string ,如:list....2、使用BasicNameValuePair创建参数对集合 List&lt;BasicNameValuePair&gt; params = new ArrayList&lt;BasicNameValuePair&...

    1、创建一个String形式的list,

    可以将list转为string ,如:list.toString();也可以直接使用String形式的list,如:"['a','b']"

    2、使用BasicNameValuePair创建参数对集合

    List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();

    params.add(new BasicNameValuePair("custom_item", list.toString()));

    3、将参数和url拼接

    String param = URLEncodedUtils.format(params, "UTF-8");

    "http://192.168.1.100:8080/xxx/xxxx?id=10&"+param

    展开全文
  • 手动解析URL字符串中的参数,写了一个工具类。 1 final int MIN_ARRAY_LEN = 2; 2 final int DIVIDE_INTO_PAIRS = 2; 3 4 public Map<String, String> parseRequestParam(String url) { 5 Map<...

    手动解析URL字符串中的参数,写了一个工具类。

     1     final int MIN_ARRAY_LEN = 2;
     2     final int DIVIDE_INTO_PAIRS = 2;
     3 
     4     public Map<String, String> parseRequestParam(String url) {
     5         Map<String, String> map = new HashMap<String, String>();
     6         if (!url.contains("?")) {
     7             return null;
     8         }
     9         String[] parts = url.split("\\?", DIVIDE_INTO_PAIRS);
    10         if (parts.length < MIN_ARRAY_LEN) {
    11             return null;
    12         }
    13         String parsedStr = parts[1];
    14         if (parsedStr.contains("&")) {
    15             String[] multiParamObj = parsedStr.split("&");
    16             for (String obj : multiParamObj) {
    17                 parseBasicParam(map, obj);
    18             }
    19             return map;
    20         }
    21         parseBasicParam(map, parsedStr);
    22         return map;
    23 
    24     }
    25 
    26     private void parseBasicParam(Map<String, String> map, String str) {
    27         String[] paramObj = str.split("=");
    28         if (paramObj.length < MIN_ARRAY_LEN) {
    29             return;
    30         }
    31         map.put(paramObj[0], paramObj[1]);
    32     }

    感觉不是很完善,期待有更好的改进意见。

    转载于:https://www.cnblogs.com/yoyotl/p/6404180.html

    展开全文
  • ajax传递map参数给后端

    万次阅读 2018-12-27 11:36:01
    向后端传递一个参数 /** * 前端ajax代码部分 */ var map = '{"account":"' + account + '"}'; //设定一个事件触发ajax $.ajax({ type : 'POST', contentType : 'application/json;...
  • url传递对象参数 假设您想传递原始数据类型,例如复杂的Java对象 java.util.Data,java.lang.List,泛型类,数组以及通过URL参数所需的所有内容,以便在页面加载后在任何网页上预设默认值。 共同的任务? 是的,...
  • 使用HashMap对象传递url参数实用工具类
  • 通过url路径传递参数

    千次阅读 2017-10-19 10:33:02
    js代码 script> var id = 5; boolean flag = false; /**重点:ajax只需要type和url属性*/ $.ajax({ async : false, cache : false, type : 'POST', url : 'are
  • 通过map自动获取url参数

    千次阅读 2017-10-21 14:49:40
    从页面传递参数到后台,不管是form表单提交还是ajax请求或者是url问号传参,都可以通过构建实体类自动获取到参数的名称和它所对应的数值,只需要一个实体类和一个方法 PageData的实体类 public class PageData ...
  • Ajax传递map数据

    千次阅读 2019-04-01 12:34:47
    利用ajax传递key-value键值对
  • ajax-传递map集合,springboot接收参数

    千次阅读 2018-07-30 09:23:44
    1.前端js封装map对象,通过ajax发起请求,后端通过springboot进行参数的处理 二,js前端数据结构,其中id为业务中的指标编号 var map = {}; var obj = { leaderId : leaderId, uuid : uuid, quotaId...
  • java后端接收map参数vue前端传递

    千次阅读 2020-05-11 16:40:21
    1、vue前端 export default { name: 'downcardlist', data() { return { person_righttable: [], //已选择的人员 device_righttable: [], //已分配设备 weektimesList:[], } }, methods:{ ...
  • 使用post方式传递URL参数

    千次阅读 2014-06-24 17:05:25
    遇上用url方式传参发现url超长了。。只好post方式传
  • 需求:浏览器url传多个参,利用Enumeration集合接收。url:http://localhost:8080/api/getUserListNew?orgId=fGc1x1oxRVuLqjeULjbl8A&amp;a=1&amp;b=2&amp;c=3调用后台的getUserListNew接口public ...
  • JS传递参数拼接方法(map多个参数

    千次阅读 2017-03-11 16:20:14
     直接代码: ...//需要传递参数  var str='';  for(var key in msgDatas){  if(!msgDatas[key]==''){//判断为空就不传  str= str+"&"+key+"="+msgDatas[key];  }   最后把str +连
  • 后台SpringMVC接收map类型参数

    万次阅读 2018-08-15 18:34:29
    背景:有时候我们可能需要发ajax到后台,并且携带一些参数,如果参数数量少,我们可以直接在后台写参数便可,如果前台提交的是表单,我们可以利用spring mvc提供的封装参数的方法进行接收,但假如是另外一种情况,...
  • 一、url拼接(form表单也是通过参数拼接传递的) 这个一种是window.open传递(该方法一般会跳转新的窗口),一种是window.location.href(该方法一般新页面显示在旧界面上) 两者区别请看该链接:...
  • SSM:后台接受map参数

    千次阅读 2019-03-24 00:44:27
    1、获取表单数据 //获取数据 function getAllData(){ let orderItem=[]; $(".passenger").each(function(index,ela){ let passenger = {}; const _this = $(ela); p...
  • 1. 在使用Ajax的时候使用url传递中文参数在控制器接收的数据是乱码,查了一下资料原因是: JQuery默认的contentType:application/x-www-form-urlencoded,这才是JQuery正在乱码的原因,在未指定字符集的时候,是...
  • httpclient get/post请求工具类(map参数封装),方便调用
  • 今天本来想在网上找一个HttpCline调用第三方借口的方法,现在网上各种版本,自己在以前做过的项目里找到了一个工具类,感觉挺方便的,里面包括了get请求带参数,get不带参数,post带参数,post不带参数! import org....
  • http post传递map

    千次阅读 2019-05-30 09:51:06
    遇到传递list、map时,先想到的是转json然后toString,身为懒人的我就受不了,与是就有了下面的结果,顿时感觉舒服了许多 public static JSONObject doPost(String url,Map<String, String> map) { ...
  • Servlet中URL请求参数获取

    千次阅读 2017-08-24 09:49:41
    本篇介绍servle请求参数获取,整理记录自己的学习笔记。  //获取单一参数,request.getParameter()返回为一个String类型  System.out.println(request.getParameter("name")+request.getParameter("password"))...
  • 因项目需求,发送http请求需要传递数据过去,因此重写了一下Volley这个框架的JsonArrayRequest和jsonObjectRequest。Volley 的扩展性还是蛮好的。 JsonArrayPostRequst.java package com.jxlg.eddie.utils; import ...
  • postman 发送Map请求参数的post 请求

    千次阅读 2019-08-13 09:44:50
    在地址栏里输入请求url:http://192.168.1.74:9090/api/orginfo/find 选择“POST”方式, 在“headers”添加key:Content-Type , value:application/x-www-form-urlencoded 点击"body",''x-www-form-urlencoded''...
  • 个人笔记,如有错误,请各位大佬批评指正 后台代码: @RequestBody注解是关键!...public ZDResponse biDown(@PathVariable("id") String id, @RequestBody Map<String, Object> map) { ...
  • freemarker如何在url传递中文参数 例如:http://www.map512.cn/findPOI.do?key=南门 如果不转码,request.getParameter("key")返回的是乱码,在jsp中,我们一般这样子传参数 String key2=URLEncoder....
  • 需要将map转换为obj再转化为json数据 var map = new Map(); //转换为对象 let obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; } //请求,JSON.stringify(obj),... url: "/survey/user/save",
  • /* * Copyright 2012 The EGF Co,. Ltd. * site: http://www.egfit.com * file: $Id$ * created at:2012-3-7 */ package com.egf.common.util; import java.util.HashMap...import java.util.Map; ...
  • public static String httpPostWithJsonAndHeader(String url, Map<String, Object> paramMap, Map<String, String> headsMap) { String result = ""; HttpPost httpPost = new HttpPost(url); List...

空空如也

1 2 3 4 5 ... 20
收藏数 90,049
精华内容 36,019
热门标签
关键字:

url 传递map参数