spring mvc利用ajax向controller传递对象的方法示例
前言 最近因为工作的需要,在写一个基于springmvc+spring+mybatis的项目,其中涉及用ajax向controller发送数据的功能。因为不想使用spring的form标签,所以想看看有没有方法将ajax中的json数据直接转化为controller方法中的对象接收并处理。以下将逐渐介绍各种不同情况下传递json数据并封装的方法,下面话不多说,一起来看看详细的介绍: 基础类型 如果传递的json数据为基础类型(Int,String等)的话,则只需要用@RequestParam标注方法中的参数就行了。 ajax代码 $.ajax({ url : "someurl",type : "POST",dataType : "JSON",data : {"name":"test","password":"testpassword"},success : function (data) { console.log(data) } }) java代码 @RequestMapping("someurl") public @ResponseBody SomeData basicType(@RequestParam String name,@RequestParam String password){ //具体方法 } 在这里 简单的对象类型 简单的对象类型是指,在对象中不包含复杂的数据结构类似于list,map等。在这里可以使用标签 假设我们有一个用户对象,用户的属性包括name,age public class User{ private String name; private int age; //getters and setters } ajax传输的数据如下 $.ajax({ url : "someurl",data : { 'name : 'test','age' : 10 },success : function (data) { console.log(data) } }) controller中的代码如下 @RequestMapping("someurl") public @ResponseBody SomeData objects(@ModelAttribute User user){ //具体方法 } springmvc 暂时不支持接收并生成多个modelAttribute 数组类型 有些情况下,可能需要传递一组相同类型的数据,比如添加一组用户的信息。这是可以通过ajax传递一个数组给controller方法。具体情况可以参考这个回答 这个回答给的非常的详细具体,需要补充的是,接收端的数据结构无论是 复杂的对象 但是上面的方法有一个问题,就是只能接收纯数组数据。假设一个对象,比如用户,该用户下的属性除了包含name(名称),age(年龄)之外,还有一个联系方式属性 ajax代码如下,需要注意的是,这里需要用 public class User{ private String name; private int age; private List<String> contacts; //或是 private String[] contacts; //getters and setters } $.ajax({ var user = { 'name' : 'test','age ' : 10,'contacts' : ['12313','123213123'] } url : "someurl",contentType:"application/json",data : JSON.stringify(user),success : function (data) { console.log(data) } }) java代码如下 @RequestMapping("someurl") public @ResponseBody SomeData complicateObject(@RequestBody User user){ //方法详情 } 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 从数组构造(非二进制)树
- 在Java / MySQL中没有时间或时区组件的日期
- “异常javax.xml.ws.WebServiceException:不支持的端点地址
- java – 如何从我的Android应用程序通过WhatsApp向特定联系
- java – 从使用keytool创建的文件在osx lion上加载keystore
- 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
- java – 使用Maven的JunitTest时的InitilizationError
- java – XPath normalize-space()返回一系列规范化字符串
- java – 如何使用HttpClient发送GWT-RPC请求?
- java – Scanner Class hasNextLine无限循环
- java.util.concurrent包详细分析--转
- 是否可以仅在Java中的cvsclient中检出目录结构?
- java – org / codehaus / plexus / archiver /
- java – 计时器 – 如何使用Joda Time计算两个日
- 详解Java 网络IO编程总结(BIO、NIO、AIO均含完整
- 用Java编写3D游戏
- Java NIO Zip Filesystem相当于java.util.zip.Zi
- java按字节截取带有汉字的字符串的解法(推荐)
- java – Joda时间减去周()和加上周(2014)2014年崩
- Spring Boot容器加载时执行特定操作(推荐)