SpringMVC怎么获取前台获取json数组传来的数组

spring mvc 接收前台传来的json对象 - CSDN博客
spring mvc 接收前台传来的json对象
1:自己研究的
&&&&1) 页面ajax代码
&&&msgObj&=&{&data&:{&&:3,&&:5,&&:3,&&:12},&indata&:{&&:9,&&:7,&&:23,&&:5}};&&$.ajax({&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&type:'post',&&&&&&&&&&&&&&&&&&  url:'${projectPath}/update',&&&&&&&&&&&&&&&&&&  data:{&channelType&:upchannel_type,&channel&:upchannel,&day&:upchannel_day,&startTime&:upchannel_startTime,&endTime&:upchannel_endTime,&database&:upchannel_db,&source&:backmsgObj,&up&:msgObj},&&&&&&&&&&&&&&&&&&  dataType:'text',&&&&&&&&&&&&&&&&&&  success:function(msg){&&&&&&&&&&&&&&&&&&&&&&&&&&  },&&&&&&&&&&&&&&&&&&  error:function(){&&&&&&&&&&&&&&&&&&  alert('error');&&&&&&&&&&&&&&&&&&  }&&&&&&&&&&})&&
&&& 2):javabean
Java代码 &
private&String&&&&&&&private&String&channelT&&&&&&private&String&&&&&&&private&String&startT&&&&&&private&String&endT&&&&&&private&String&&&&&&&&&&&&&private&Map&String,Map&String,String&&&&&&&&&private&Map&String,Map&String,String&&&&&&&&
&3)controller modle
Java代码 &
@RequestMapping(&/update&)&&&&&&public&String&updateBandwidth(@ModelAttribute&SearchBean&searchBean,&HttpServletRequest&request,&&&&&&&&&&&&&&HttpServletResponse&response)&throws&Exception{&&&&&&&&&&System.out.println(&source&:&+searchBean.getSource().toString());&&&&&&&&&&System.out.println(&up&:&+searchBean.getUp().toString());&&&&&&&&&&return&&null;&&&&&&}&&
2:在网上找的,不过试了好久没成功
在用 spring mvc 写应用的时候发现jquery传递的【json数组对象】参数后台接收不到,多订单的处理,ajax请求:
Java代码& &
var&cmd&=&&{orders:[{&storeId&:&0a1&,&&address&:&西斗门路2号&,&&goods&:[{&goodsId&:&1&},&{&goodsId&:&2&},&{&goodsId&:&3&}]},{&storeId&:&0a1&,&&address&:&西斗门路2号&,&&goods&:[{&goodsId&:&4&},&{&goodsId&:&4&},&{&goodsId&:&5&}]}]}&&
&&&&&&&&&&&&&&
$.ajax({&&
&&&&&&&&&&&&&&&&url&:&url,&&
&&&&&&&&&&&&&&&&type&:&&POST&,&&
&&&&&&&&&&&&&&&&datatype:&json&,&&
&&&&&&&&&&&&&&&&data&:&cmd,&&
&&&&&&&&&&&&&&&&success&:&function(data,&stats)&{&&
&&&&&&&&&&&&&&&&&&&&if&(stats&==&&success&)&{&&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&},&&
&&&&&&&&&&&&&&&&error&:&function(data)&{&&
&&&&&&&&&&&&&&&&&&&&alert(&请求失败&);&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&});&&
开始如何传后台用 @RequestParam 去接收如何都接不到,分析下请求头,原来是json格式没转换
Java代码& &
Origin:http:&&
Referer:http:&&
User-Agent:Mozilla/5.0&(Windows&NT&6.1)&AppleWebKit/537.1&(KHTML,&like&Gecko)&Chrome/21.0.1180.89&Safari/537.1&&
X-Requested-With:XMLHttpRequest&&
Form&Dataview&URL&encoded&&
orders[0][storeId]:0a1&&
orders[0][address]:西斗门路2号&&
orders[0][goods][0][goodsId]:1&&
orders[0][goods][1][goodsId]:2&&
orders[0][goods][2][goodsId]:3&&
orders[1][storeId]:0a1&&
orders[1][address]:西斗门路2号&&
orders[1][goods][0][goodsId]:4&&
orders[1][goods][1][goodsId]:4&&
orders[1][goods][2][goodsId]:5&&
Response&Headersview&source&&
Content-Length:1051&&
Content-Type:text/charset=utf-8&&
Date:Mon,&26&Nov&2012&16:10:07&GMT&&
Server:Apache-Coyote/1.1&&
通过观察,orders[0][storeId]:0a1&
orders[0][address]:西斗门路2号&
orders[0][goods][0][goodsId]:1 变成了多维数组的格式传递,没有按json对象的方式传递(原以为 jquery会自动转的,可惜我想多了,所以出现了乌龙)。&
下了个jquery的json插件,jquery.json-2.4.js 转了下json;但是问题又来了,传的格式正确但是后台还是接不到,打印了下request.getParameterMap(),参数按json格式传进来,但是接的方式又出现了问题,用string接肯定不行,String数组接也接不到,List也接不到,网上查查相关Controller的接收json对象的方式,需要用@RequestBody来进行接收,为了方便干脆把 orders去掉 直接用json数组
Javascript代码& &
var&cmd&=&&[{&storeId&:&0a1&,&&address&:&西斗门路2号&,&&goods&:[{&goodsId&:&1&},&{&goodsId&:&2&},&{&goodsId&:&3&}]},{&storeId&:&0a1&,&&address&:&西斗门路2号&,&&goods&:[{&goodsId&:&4&},&{&goodsId&:&4&},&{&goodsId&:&5&}]}]&&
Java代码& &
(@RequestBody&List&orders)&&
这种方法来接&
检查下参数写法,应该没错,测试之后还是有问题 报了这样一个错误:&
POST http://localhost/test/order 415 (Unsupported Media Type)&这个问题应该是前台请求过程中没有指明contentType,ajax中加上contentType: &application/ charset=utf-8&,再测试,果然可以了。完整代码如下:
Javascript代码& &
var&cmd&=&&[{&storeId&:&0a1&,&&address&:&西斗门路2号&,&&goods&:[{&goodsId&:&1&},&{&goodsId&:&2&},&{&goodsId&:&3&}]},{&storeId&:&0a1&,&&address&:&西斗门路2号&,&&goods&:[{&goodsId&:&4&},&{&goodsId&:&4&},&{&goodsId&:&5&}]}]&&
&&&&&&&&&&&&&&
$.ajax({&&
&&&&&&&&&&&&&&&&url&:&url,&&
&&&&&&&&&&&&&&&&type&:&&POST&,&&
&&&&&&&&&&&&&&&&datatype:&json&,&&
&&&&&&&&&&&&&&&&&&&&&&&&&contentType:&&application/&charset=utf-8&,&&
&&&&&&&&&&&&&&&&data&:&$toJSON(cmd),&&
&&&&&&&&&&&&&&&&success&:&function(data,&stats)&{&&
&&&&&&&&&&&&&&&&&&&&if&(stats&==&&success&)&{&&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&},&&
&&&&&&&&&&&&&&&&error&:&function(data)&{&&
&&&&&&&&&&&&&&&&&&&&alert(&请求失败&);&&
&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&});&&
Controller method:&
Java代码& &
@RequestMapping(value&=&&/order&,&method&=&RequestMethod.POST)&&
&public&&ModelAndView&order(@RequestBody&List&Map&String,Object&&&orders)&{&&
&&&&&&&&System.out.println(&orders&size:&&+&orders.size());&&
本文已收录于以下专栏:
相关文章推荐
1、以实体类方式接收前端 ajax 提交数据:function fAddObj() {
var obj = {};
obj['objname'] = &obj&;
obj['p...
未定义jquery,就是没加载到jquery脚本,第一反应就应该清除缓存试试。
项目原先运行都是对的,突然就错了的,一般都是清除下缓存就好了。
否则的话就可是以下三点了:
ECharts  环形饼图 动态获取json数据
一.html部分
  
function loadOneColumn() {
    var myChart = echarts...
.NET里面webform的后缀是aspx
WCF和WebService的后缀是asmx
然后今天拿到一个客户端代码,调用服务端,服务端后缀是ashx瞬间傻蛋了,.NET我不知道的组件真多。
一、场景:公司需要在网站上进行支付宝支付。
二、API:使用支付宝开放平台的支付能力-即时到账接口。支付宝开放平台链接
三、分析:
1、支付宝的文档比较容易看,主要是有相应的DEMO,我这里看的DEM...
$ is not defined这种提示想必在调试时经常会遇到吧,
经过搜索查询了一下结果是引入Jquery的顺序不对,
把错误提到的语句或函数提到最前面试试
改过来就可以了,有...
vue.js中created方法作用
最近,在做项目的过程中,用到了很多的一般处理程序,相信你也用到了,但是你真的了解它吗?
                   
        一般...
这是freecodecamp上的一个项目,本来挺简单的,但是格言的免费api不好找,先找到一个国外的,却是搞出了跨域访问的问题,搞了半天没解决,然后想到了“一言”,下面便是用“一言”的api制作的随机...
首先,我jQuery包有引进,但还是报$或jQuery is not defined 这个错,纠结了半天,最后发现也原来是路径问题。
把原先的路径:
/jQuery/jquery...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)spring mvc 页面传递数组后台接收方式 - CSDN博客
spring mvc 页面传递数组后台接收方式
spring mvc 页面传递数组后台接收方式
1.定义一个简单的类 User.java
public class User {
public Integer getId() {
public void setId(Integer id) {
public String getName() {
public void setName(String name) {
this.name =
2.前端页面代码:
&form action="/user.front" method="post"&
&span&姓名1:&/span&&input type="text" name="name"/&
&span&姓名2:&/span&&input type="text" name="name"/&
&input type="submit" value="submit"/&
3.提交时两个name需要作为数组当做参数传递.后台接收时需要做个处理:
新建一个类UserModel,代码如下:
public class UserModel {
private List&User&
public UserModel(List&User& users) {
this.users =
public UserModel (){}
public List&User& getUsers() {
public void setUsers(List&User& users) {
this.users =
4.此时前端代码name命名需改为
&form action="/user.front" method="post"&
&span&姓名1:&/span&&input type="text" name="users[0].name"/&
&span&姓名2:&/span&&input type="text" name="users[1].name"/&
&input type="submit" value="submit"/&
注意name中的users已UserModel.java的变量名一致;
5.UserController接收方式为:
@RequestMapping("user.front")
@ResponseBody
public int test(UserModel user){
System.out.println("user = " + user);;
此时的参数名就是UserModel,就能成功接收到数据;
- 图片展示下效果
本文已收录于以下专栏:
相关文章推荐
前台:$(function() {//点击播放按钮执行的事件
$(&#button&).click(function(e) {
alert(&kaishi chuanzh...
        相信很人都被springmvc接收数组问题折磨过,查过几个解决方案,都不能很好的解决。那些方法一般存在一个问题:把接收到的数据类型转换成你想要的类型时,不好处理。为什么说不好...
主要是加了个@RequestParam(value = &titles[]&)
Controller
Java代码  
@RequestMapping(valu...
js传递数组到后台
在springmvc接收数组对象List时:
         批量删除比较简单,用我的解决方案一的十分之一功力就可以解决,传个id数组就行了,后台根据id数组删除就行了。麻烦的是对一    个...
1、Controller接受前端值
方法参数使用HttpRequestServlet request, 通过request.getParameter(&userName&)获...
ajax传数组到后台,后台springmvc  接受数组参数
  var   ids= new Array();
  $(&input[class='detailCheck']:checked.....
jquery代码$(function(){
var contacts = [];
contacts[0] = 'xiaoming';
contacts[1] = 'daming...
1、前端假设使用如下url进行ajax请求:假http://ip:port/ap/aa.jsp?a=1&a=2
      或者,使用如下表单提交:
     
     
然后你在 java....
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)所有回答(5)
试试&request.getParameter("name")
园豆:32726
修改了spring版本,2.5.6 修改为3.2.2,可以使用
request.getFiles("myfiles");
&public @ResponseBody Result insertInfo(@RequestParam MultipartFile file,
不要[]看看
大侠 ,结果怎么样了啊。
页面用HTML5 试试这个 &input type="file" name="myfiles" multiple="multiple" /&
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 前台怎么传数组 的文章

 

随机推荐