Ajax--表单映射
来源:互联网 发布:python 时间的加减 编辑:程序博客网 时间:2024/06/04 19:02
1 在表单序列化映射到后台实体对象中,走了蛮多弯路,特总结如下。
表单:
<form id="form01" enctype="multipart/form-data"> <input type="text" name="name" id="name"/> <input type="text" name="password" id="password"/> <input type="button" value="确认" onclick="upload()"> </form>
JS方法:
function upload() { $.ajax({ type:"POST", url : '<%=basePath%>upload01.do', //用于文件上传的服务器端请求地址 data : formToJson($("#form01")), contentType: 'application/json; charset=utf-8', success : function(data, status) //服务器成功响应处理函数 { alert(data); }, error : function(data, status, e)//服务器响应失败处理函数 { alert(e); } }); } //将表单数据转化为JSON数据 form为表单对象,如$("#form01"),返回序列化数据 function formToJson(form) { var data = form.serialize(); data = decodeURIComponent(data, true);//防止中文乱码 data = data.replace(/&/g, "','"); data = data.replace(/=/g, "':'"); data = "({'" + data + "'})"; obj = eval(data); obj=JSON.stringify(obj); return obj; }
需要注意的是,为什么不直接用serialize()序列化表单呢?还要这麻烦。当时做的时候,$(“#form”).serialize()返回的是name=1&password=1的形式,不知道jquery怎么序列化成这样的,在网上找了半天,未果,看到一篇博客,http://www.cnblogs.com/suruozhong/p/6256457.html,将这种奇怪的序列化的结果通过换字符转成JSON的形式,然后OK,感谢博主。
后台控制器:
@RequestMapping(value = "upload01", method = RequestMethod.POST) public void uploadText01( HttpServletRequest request, HttpServletResponse response, @RequestBody User user) { System.out.println("run in"); }
需要说明的是在对象的前面加@RequestBody,前台的JSON数据才会映射到对象中,不然会报一系列的错:
Unsupported Media TypeContent type 'application/json;charset=UTF-8' not supported
不过有可能是你的实体名称与标签中的name属性值不匹配导致这种错误。
出现表单无法映射到后台实体还有可能是缺少架包的原因,
<!-- JSON支持 --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <!--指定jdk版本 --> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency>
可参考:http://blog.csdn.net/fpxty/article/details/72835993
http://www.cnblogs.com/yeyuchangfeng/p/5623445.html
阅读全文
0 0
- Ajax--表单映射
- Springmvc表单实体映射
- Ajax表单提交实例
- Ajax表单提交实例
- Ajax表单提交实例
- ajax提交表单
- asp+ajax验证表单
- 表单ajax验证
- ajax 注册表单验证
- ajax提交form表单
- Ajax表单提交乱码
- ajax提交表单
- jQuery+aJax表单提交
- AJAX提交表单
- AJAX提交表单方法
- ajax提交表单
- ajax提交form表单
- AJAX提交表单数据
- subline text 3中如何安装vue插件
- Tomcat源码之Connector(1)
- PHP for循环
- 10004---简析TCP的三次握手与四次分手
- SQL防注入
- Ajax--表单映射
- (2)oracle管理表
- 程序员的思维修炼
- POJ 2253 Frogger (最短路
- Linux File System浅析
- extern 'c'
- 你必须知道的261个Java语言问题笔记- Java与面向对象
- server-location-配置参数
- linux(Redhat)添加sudoer