Springmvc的一个问题一直被广大开发者所诟病,就是在list对象的转换上一直并不是特别好用,网上很多解决方法关于不同的表单提交方式这里就不多说了,只介绍下ajax方式提交list对象的方法。

比如你要通过ajax传递下面一段数据到controller:

var json = [{'id':1,'name','aaa'},{'id':2,'bbb'},{'id':3,'ccc'}]

如果像下面这样写肯定是无法传递到后端的:

// js代码
$.post("/test",json,function(){
    // Todo:
});

// java后台代码
@ResponseBody
@RequestMapping("/test")
public String test(@RequestParam(name = "users")List<User> users){
// Todo:
}

这样肯定会报错User找不到之类的,那么怎么解决呢?

我们大家都知道字符串的传递其实是最简单的,所以我们可以换个思路将json对象转成json字符串!
代码如下:

var json = [{'id':1,'ccc'}];
var jsonStr = JSON.stringify(json);
// js代码
$.post("/test",{'usersJson':jsonStr},function(){
    // Todo:
});

// java后台代码
@ResponseBody
@RequestMapping("/test")
public String test(@RequestParam(name = "usersJson") String usersJson){
    Gson gson = new Gson();
    List<User> users = gson.fromJson(usersJson,new Typetoken<ArrayList<User>>() {
        }.getType());
    // Todo:
}

这样就可以了,其实就是在java代码中将json字符串转成list对象而已,但感觉这样的做法比其他的做法会简单些。

Ajax异步提交List对象,SpringMvc如何接收?的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. Swift 字符串替换/过滤/切割/拼接

    替换为/结果过滤过滤掉单个字符/结果过滤掉开头和结尾的空白结果切割对字符串使用/作为分隔符来切割,不允许空字符串使用split函数结果是一个数组对字符串使用/作为分隔符来切割,允许空字符串结果拼接结果

  3. Swift开发教程--字符串的操作

    替换把?替换为/结果

  4. swift 网络搜索热词排行

    1.使用www.showapi.com上的接口,需要注册添加一个App,这样才能获取appid和secret密钥,调用前需要订购套餐(选免费的就可以了);2.外部库Podfile文件内容,SnapKit这里暂时不需要用到:3.桥接头文件参考:http://www.jb51.cc/article/p-pcleyxep-te.html4.AppTransportSecurityhasblockedac

  5. 如何在Swift中打乱数组?

    如何随机化或混洗Swift中的数组中的元素?例如,如果我的数组包括52张扑克牌,我想洗牌,以便洗牌。这个答案详细说明了如何在Swift的各种版本中添加Fisher-Yatesshuffle。Swift3版本是最宽松的,但是它们至少可以用于数组。每个Swift版本的命名和行为与该版本的mutating和nonmutating排序方法相匹配。

  6. unit-testing – 如何在Swift中对NSFetchedResultsController进行单元测试

    我有一个Swift应用程序,它使用NSFetchedResultsController从持久存储中获取List对象:它的工作方式与预期的一样,我将List对象描述打印到控制台.我想为我的应用程序编写一些单元测试,所以我创建了扩展XCTestCase的类.代码编译没有问题,测试运行,但不幸的是我无法在该上下文中获取List对象.我在控制台中获得的所有内容都是List对象的数量和致命错误:线路上升:我

  7. swift – 检查自定义对象数组是否包含特定的自定义对象

    说我有一个非常简单的Person类我希望将一个这样的人的集合存储在一个属性中,该属性是一个Person类的数组,类型为Person也许我实现如下问题:我如何检查people.list是否包含实例alex,好吗?

  8. swift – 使用反射来设置对象属性,而不使用setValue forKey

    在Swift中,不可能使用.setValue(…)>可空类型字段,如Int?>具有枚举类型的属性>一个可空对象的数组,如[MyObject?]这有一个解决方法,也就是通过覆盖对象本身中的UnVersionKey方法的setValue.因为我正在写一个基于反射的通用对象映射器.请参阅EVReflection我想尽量减少这种手动映射.是否有其他方式自动设置这些属性?

  9. Swift Sliceable上的递归

    事实证明,有一个通用的解决方案.您需要添加这些通用要求:对于发布的问题,这给出了:这是任何切片上有用的通用缩减:我不能相信这一点,Apple开发论坛上的解决方案是posted.令人遗憾的是,通用要求如此涉及到这样一个基本操作–它几乎不直观!

  10. uitableview – 使用Swift的“使用未解析的标识符”

    我正在重写我在Swift中的一个应用程序,它显示SouthKohala的实时天气数据.爱Swift到目前为止!

随机推荐

  1. Ajax+SpringMVC requestBody

    ajax+SpringMVC经验证,上文写的是比较正确的,所以转过来保存一下.传JSON对象前端后端传JSON字符串+@RequestBody接收前端后端

  2. Ajax异步提交List对象,SpringMvc如何接收?

    Springmvc的一个问题一直被广大开发者所诟病,就是在list对象的转换上一直并不是特别好用,网上很多解决方法关于不同的表单提交方式这里就不多说了,只介绍下ajax方式提交list对象的方法。比如你要通过ajax传递下面一段数据到controller:如果像下面这样写肯定是无法传递到后端的:这样肯定会报错User找不到之类的,那么怎么解决呢?

  3. H5FormData+AJAX+SpringMVC跨域异步上传文件

    最近都没时间整理资料了,一入职就要弄懂业务,整天被业务弄得血崩。总结下今天弄了一个早上的跨域异步上传文件。主要用到技术有HTML5的FormData,AJAX,SpringMVC。注意这个upload.js是自己写的,里面那个ajaxFileUpload并不是jQuery提供的那个上传插件的方法。服务端接口写法:@ResponseBody@RequestMappingpublicvoidaddPicthrowsIOException{System.out.println;response.getWrite

  4. ajax与springmvc传参方式总结

    若传递的是数组对象,需要用第二种方式,否则失败。①前台$.ajax;后台:@RequestMapping@ResponseBodypublicStringdel{return"";}如果不加Traditional,通过观察浏览器中发送的请求,可以发现参数如下:newArray[]:delArray[]:可以看到,参数的名字为newArray[]而不是我们所定义的newArray,也就是说,当传递数组时,会在我们的数组名称后自动加上”[]”,所以后台接不到。

  5. AJAX和SpringMVC交互

    AJAX利用jquerySPRING

  6. ajax json异步springmvc http请求返回状态码为406的解决

    是因为缺少json相关jar包,网上很多人只是给出了前两个jar,其实不全,依旧406,应该给出四个

  7. ajax传递json参数到springmvc

    前后端交互,经常出现400或者415,这里写个小笔记,已做参考,不断完善方式一:前台代码:后台代码:

  8. AJAX+SpringMVC 获取后台数据的方式

    利用ajax同步获取服务器的数据,当页面加载完成的时候后台代码:Service层:List转json方法:学习中。。。。。。

  9. AJAX+JQuery+SpringMVC实现图片上传

    利用ajax实现前端与后台的交互,从服务端获取数据,并调回到前端进行解析。下面是前端代码:下面上后端的代码:Controller层Service层:DAO层:以上都是获取数据的部分,下面是提交数据的代码:Controller:Service:这个是文件上传的关键部分以上

  10. $.ajax与SpringMVC的那点事-传参与返回

    由于有@RresponseBody标示,SpringMVC会将头信息中的Content-Type:application/x-www-form-urlencoded(默认值)改为application/json;,即返回为JSON格式,所以ajax的dataType:"json"可有可无。

返回
顶部