当前位置: 首页 > news >正文

网站的系统帮助塘沽做网站公司

网站的系统帮助,塘沽做网站公司,手机网站如何做营销,wordpress同步qq空间一、背景 最近在做一些东西的时候#xff0c;遇到一个需要Springmvc后台接收list类型数据的需求#xff0c;几经辗转才完美解决了这个问题#xff0c;今天记下来方便以后使用#xff0c;也分享给需要的小伙伴们~ 二、实现方式 实现方式一 前端页面 1 % page language遇到一个需要Springmvc后台接收list类型数据的需求几经辗转才完美解决了这个问题今天记下来方便以后使用也分享给需要的小伙伴们~ 二、实现方式 实现方式一 前端页面 1 % page languagejava contentTypetext/html; charsetUTF-82 pageEncodingUTF-8%3 !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd4 html5 head6 meta http-equivContent-Type contenttext/html; charsetUTF-87 title测试/title8 /head9 body 10 input typebutton namerequest value请求后台 stylewidth:200px;height:50px;background-color:red;margin-bottom:20px; 11 div namers/div 12 input typecheckbox namese value1hafiz.zhangbr/ 13 input typecheckbox namese value2jack.chenbr/ 14 input typecheckbox namese value3lili.wangbr/ 15 script typetext/javascript 16 17 $(input[namerequest]).click(function(){ 18 var data []; 19 $(input[namese]).each(function(){ 20 if($(this).prop(checked)) { 21 data.push($(this).val()); 22 } 23 }); 24 var json_data JSON.stringify(data); 25 $.ajax({ 26 type:post, 27 url:$.wap.url /test/index, 28 contentType:application/json, 29 data:json_data , 30 dataType:json, 31 success:function(data){ 32 var str; 33 for(var i 0; i data.length; i) { 34 str ;name data[i]; 35 } 36 $(div[namers]).html(str); 37 }, 38 error:function(){ 39 alert(出错啦); 40 } 41 }); 42 }); 43 /script 44 /body 45 /html 后台接收 1 package com.hafiz.www.controller;2 3 import java.util.ArrayList;4 import java.util.List;5 6 import org.springframework.stereotype.Controller;7 import org.springframework.web.bind.annotation.RequestBody;8 import org.springframework.web.bind.annotation.RequestMapping;9 import org.springframework.web.bind.annotation.RequestMethod; 10 import org.springframework.web.bind.annotation.ResponseBody; 11 12 Controller 13 RequestMapping(/test) 14 public class TestController { 15 RequestMapping(value /index, method RequestMethod.POST) 16 ResponseBody 17 public ListInteger test(RequestBody ArrayListInteger ids){ 18 System.out.println(List ids); 19 return ids; 20 } 21 } 注意这种方法只适用于POST方法提交(上面代码中标红的是必不可少的代码)如果使用get方法会出现如下图所示的错误 这是因为get方式的参数中的双引号会被编码导致传到后台的不再是json串格式所以解析出错。 实现方式二  前端页面 1 % page languagejava contentTypetext/html; charsetUTF-82 pageEncodingUTF-8%3 !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd4 html5 head6 meta http-equivContent-Type contenttext/html; charsetUTF-87 title测试/title8 /head9 body 10 input typebutton namerequest value请求后台 stylewidth:200px;height:50px;background-color:red;margin-bottom:20px; 11 div namers/div 12 input typecheckbox namese value1hafiz.zhangbr/ 13 input typecheckbox namese value2jack.chenbr/ 14 input typecheckbox namese value3lili.wangbr/ 15 script typetext/javascript 16 17 $(input[namerequest]).click(function(){ 18 var data []; 19 $(input[namese]).each(function(){ 20 if($(this).prop(checked)) { 21 data.push($(this).val()); 22 } 23 }); 24 $.ajax({ 25 type:get, 26 url:$.wap.url /test/index, 27 data:{datas:data},//或者data:{datas[]:data} 28 dataType:json, 29 success:function(data){ 30 var str; 31 for(var i 0; i data.length; i) { 32 str ;name data[i]; 33 } 34 $(div[namers]).html(str); 35 }, 36 error:function(){ 37 alert(出错啦); 38 } 39 }); 40 }); 41 /script 42 /body 43 /html 后台接收指定参数名必须以数组方式如RequestParam(datas[])   1).通过ArrayList接收 1 package com.hafiz.www.controller;2 3 import java.util.ArrayList;4 import java.util.List;5 6 import org.springframework.stereotype.Controller;7 import org.springframework.web.bind.annotation.RequestMapping;8 import org.springframework.web.bind.annotation.RequestMethod;9 import org.springframework.web.bind.annotation.RequestParam; 10 import org.springframework.web.bind.annotation.ResponseBody; 11 12 Controller 13 RequestMapping(/test) 14 public class TestController { 15 RequestMapping(value /index, method RequestMethod.GET) 16 ResponseBody 17 public List test(RequestParam(datas[]) ArrayListInteger ids){ 18 System.out.println(List ids); 19 return ids; 20 } 21 }   2).通过数组进行接收 1 package com.hafiz.www.controller;2 3 import java.util.ArrayList;4 import java.util.List;5 6 import org.springframework.stereotype.Controller;7 import org.springframework.web.bind.annotation.RequestMapping;8 import org.springframework.web.bind.annotation.RequestMethod;9 import org.springframework.web.bind.annotation.RequestParam; 10 import org.springframework.web.bind.annotation.ResponseBody; 11 12 Controller 13 RequestMapping(/test) 14 public class TestController { 15 RequestMapping(value /index, method RequestMethod.POST) 16 ResponseBody 17 public Integer[] test(RequestParam(datas[]) Integer[] ids){ 18 System.out.println(ids ids); 19 return ids; 20 } 21 } 注意   1.这种方式对于get和post方式的请求同样都适用....   2.以上两种实现方式传到后台的数据不能为null,否则会报Http 400错误。 实现方式三  前端页面 1 % page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %2 !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd3 html4 head5 meta http-equivContent-Type contenttext/html; charsetUTF-86 title测试/title7 /head8 body9 input typebutton namerequest value请求后台 10 stylewidth:200px;height:50px;background-color:red;margin-bottom:20px; 11 div namers/div 12 input typecheckbox namese value1hafiz.zhangbr/ 13 input typecheckbox namese value2jack.chenbr/ 14 input typecheckbox namese value3lili.wangbr/ 15 script typeapplication/javascript srcjs/jquery-1.11.1.min.js/script 16 script typetext/javascript 17 18 $(input[namerequest]).click(function () { 19 var data []; 20 $(input[namese]).each(function () { 21 if ($(this).prop(checked)) { 22 data.push($(this).val()); 23 } 24 }); 25 $.ajax({ 26 type: post, 27 url: /test/index, 28 data: {datas: data.join()} 29 dataType: json, 30 success: function (data) { 31 var str ; 32 for (var i 0; i data.length; i) { 33 str ;name data[i]; 34 } 35 $(div[namers]).html(str); 36 }, 37 error: function () { 38 alert(出错啦); 39 } 40 }); 41 }); 42 /script 43 /body 44 /html 后端代码   1)通过数组接收 1 package com.hafiz.www.controller;2 3 import org.springframework.stereotype.Controller;4 import org.springframework.web.bind.annotation.RequestMapping;5 import org.springframework.web.bind.annotation.RequestMethod;6 import org.springframework.web.bind.annotation.RequestParam;7 import org.springframework.web.bind.annotation.ResponseBody;8 9 import java.util.ArrayList; 10 import java.util.List; 11 12 /** 13 * Desc:测试控制器 14 * Created by hafiz.zhang on 2017/7/2. 15 */ 16 Controller 17 RequestMapping(/test) 18 public class TestController { 19 RequestMapping(value /index, method RequestMethod.POST) 20 ResponseBody 21 public Integer[] test(RequestParam(datas) Integer[] ids) { 22 System.out.println(ids ids); 23 return ids; 24 } 25 }   2).通过List接收 package com.hafiz.www.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List;/*** Desc:测试控制器* Created by hafiz.zhang on 2017/7/2.*/ Controller RequestMapping(/test) public class TestController {RequestMapping(value /index, method RequestMethod.POST)ResponseBodypublic List test(RequestParam(datas) ListInteger ids) {System.out.println(ids ids);return ids;} } 这种方式即使没有选中任何复选框进行提交也不会报错   对于想要前端传自定义对象数组到后端以上的方式就不适用了那么解决办法是什么呢   ajax请求中设置contentType:application/json;charsetutf-8 ajax请求中设置data:JSON.stringify(dataList) 后端Controller种用RequestBody YourObject[] data进行接收并且只能用数组接收.   如果你有更好的实现方式希望可以拿来分享。。。。 三、总结 1.实现方式一只对post方法有效且比较繁琐不推荐 2.实现方式二要求后端接收的时候必须声明参数为数组但可以使用数组或者list进行接收参数如RequestParam(datas[])前端使用data:{datas:data}或data:{datas[]:data}都可以且post和get方法都适用。但是不能传空数组,限制也比较多也不太推荐。 3.实现方式三只需要前端传值的时候使用数组的join()方法为空数组也不会报错配置简单要求少且支持使用数组和list进行接收参数比较推荐  关于传递自定义对象的集合可以参考这篇文章https://blog.csdn.net/sweetgirl520/article/details/79127223转载于:https://www.cnblogs.com/hafiz/p/5498936.html
http://www.yutouwan.com/news/80859/

相关文章:

  • 威海建设集团招聘信息网站ie浏览器哪个做网站稳定
  • 保健品网站建设流程开化网站建设
  • 做财经类新闻的网站郑州网络公司哪个最好
  • 江苏省招投标办法建设厅网站游戏公司网站模板
  • 微生成网站php 网站开发缓存有那几种
  • 石家庄网站建设王道下拉棒eclipse怎么做网页
  • 网站样式侵权公司做网站流程流程
  • 佛山网站开发公司有哪些wordpress首页显示文章列表
  • sns网站建设哪家公司好烟台网站推广排名
  • 我要建立自己的网站汽车网页设计作品欣赏
  • 各类网站规划巩义旅游网站建设公司
  • 柳江企业网站建设公司免费的php网站模板
  • wordpress移动站点php 微网站开发
  • 营销型网站建设的五力原则网站如何做参考文献
  • 网站分析软件上饶小程序开发公司
  • 桂林旅游景点大全无锡网站seo
  • 重庆市渝兴建设投资有限公司网站重庆品牌型网站建设
  • 怎么做自助提卡网站网站移动端和PC端自适应怎么做
  • 忻州网站seo下载并安装百度地图
  • 网站开发必看书籍做业务在那几个网站上找客户端
  • 建设部注册中心网站phpcms v9
  • 城市建设局网站辽宁省建设工程信息网入辽打印
  • 贵州建设厅考试网站安全员怎么建网站教程图解
  • html网站建设方案网站建设是专业
  • 免费个人网站平台开源 购物网站
  • 个人网站展示vps wordpress
  • 网站建设需要哪些步骤 谢谢网站开发策略都有啥
  • 卖磁铁的网站怎么做的网址站
  • 女性手表网站企业网盘软件
  • 什么叫营销型网站建设长沙竹叶网络科技有限公司