前端 往 后端传参的六种方式 —— 后端踩坑1

1. 请求体在url中(2)
2. 请求体以单个参数 或 JSON对象的方式传送 (2)
3. 请求体以表单的形式传送:简单表单、复杂表单 (2)

. 请求体在url中
	1.1 url: "/yourUrl/"+yourData
		==> 
		@RequestMapping("/yourUrl/{yourDataName}")
		public String yourUrl(@PathVariable("yourDataName") String yourData) {
			// @PathVariable("yourDataName")必不可少,因为他指定链接中某个位置代表着名为yourDataName的变量
		}
		    
	1.2 url: "/yourUrl?yourDataName=" + yourData
		==> 
		@RequestMapping("/yourUrl")
		public String yourUrl(@RequestParam("yourDataName") String yourData) {
			//@RequestParam("yourDataName")是必不可少的,因为他指定了链接中的参数名称
		}
	
	二、请求体以单个参数 或 JSON对象的方式传送	
	2.1 url: "/yourUrl", 
        data: { 
            "username": "admin", 
            "password": "admin"
        }
        ==> 
        @RequestMapping("/yourUrl")
   	 	public String yourUrl(@RequestParam("username") String username,
   	 							 @RequestParam("password") String password) {}	
   	 	
  	2.1 url: "/yourUrl", 
		data: JSON.stringify(conceptMap),
		==> 
		@RequestMapping("/yourUrl")
  	 	public String yourUrl(@RequestBody()ConceptMap conceptMap) {}	

	三、请求体以表单的形式传送:简单表单、复杂表单
	3.1 url: "/yourUrl", 
        data:formData.serialize() // 对表单数据进行序列化并传递到后台
		==>
		@RequestMapping("/yourUrl")
	    public String yourUrl(@RequestParam("user") String jsonObject){
	    	User user= JSON.parseObject(jsonObject, User.class);
	    	// 接收表单时 无法使用 @RequestBody 
		}
		序列化 与 反序列化
		对象 → 字节 → 对象
		
	3.2 var formData = new FormData();
		formData.append("upGeoIcon",$('#fileInput')[0].files[0]);
		formData.appen("geoIcon",JSON.stringify(geoIcon));
		...
		url: "/yourUrl", 
        data:formData.serialize() 
		==>
		@RequestMapping("/yourUrl")
	    public String yourUrl(@RequestParam("upGeoIcon") MultipartFile mfile,
	    						@RequestParam("geoIcon") String jsonObject){
	    	GeoIcon geoIcon = JSON.parseObject(jsonObject, GeoIcon.class);
	    	// 接收表单时 无法使用 @RequestBody 
		}
	
  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值