spring-mvc ajax传递用户对象到后台
2018-03-05 22:28
134 查看
目标
在Spring-mvc项目中,希望 可以实现传递一个对象到后台,并且可以接受到后台传来的数据这样的功能,采取的方式是ajax。实现方法
ajax代码<script type="text/javascript" language="javascript"> var boolstoreName=false; var boolpassWord=false; function check(){ var un = document.getElementById("username").value; var pwd = document.getElementById("password").value; if(un.length==0&&pwd.length==0){ alert("用户名和密码都为空"); return; } if(un.length==0){ alert("用户名为空"); return; } if(pwd.length==0){ alert("密码为空"); return; } var pwd_md5=hex_md5(pwd); $.ajax({ cache: false, async: false, type: "POST", dataType: "json", data: { "username": un, "password": pwd_md5 }, url: "Check", success: function(data) { var backdata=JSON.parse(data); //传回的是json字符串,要先把它转换成js中的类对象, alert("success"); if("ok"==data.check_type) { boolpassWord = true; }else{ divpassword.innerHTML='<font color="red" style="text-align:center">用户名和密码不匹配!</font>'; boolpassWord=false; } }, error : function(XMLHttpRequest,textStatus,errorThrown) { alert("error方法"); divpassword.innerHTML='<font color="red" style="text-align:center">用户名和密码---不匹配!</font>'; boolpassWord = false; } }); if(boolpassWord==false){ return; }else{ document.getElementById("password").value=pwd_md5; document.loginForm.submit(); } } </script>
form表单代码(jsp)
<form:form method="POST" modelAttribute="user" action="loginAction" class="m-form m-form-ht n-login" id="loginForm" name="loginForm" onsubmit="return false;" autocomplete="off" > <div class="fmitem"> <label class="fmlab">用户名:</label> <div class="fmipt"> <form:input class="u-ipt" type="username" name="username" id="username" path="username"/> </div> </div> <div class="fmitem"> <label class="fmlab">密码:</label> <div class="fmipt"> <form:input id="password" class="u-ipt" type="password" name="password" path="password"/> <span class="tips" id="divpassword"></span> </div> </div> <div class="fmitem fmitem-nolab fmitem-btn"> <div class="fmipt"> <button type="submit" class="u-btn u-btn-primary u-btn-lg u-btn-block" onClick="check()">登 录</button> </div> </div> </form:form>
后台代码
@RequestMapping(value = "/Check", method = { RequestMethod.POST }) @ResponseBody public String Check(@ModelAttribute User user) { System.out.println("Check方法"); User buy_user = new User(); buy_user.setUsername("and"); buy_user.setPassword("794aad24cbd58461011ed9094b7fa212"); User salle_user = new User(); buy_user.setUsername("but"); buy_user.setPassword("64c9ac2bb5fe46c3ac32844bb97be6bc"); boolean falg = false; if (user.getUsername().equals(buy_user.getUsername()) && user.getPassword().equals(buy_user.getPassword())) { // 买家的信息确认 falg = true; } else if (user.getUsername().equals(salle_user.getUsername()) && user.getPassword().equals(salle_user.getPassword())) { // 卖家的信息确认 falg = true; } // 验证用户名和密码的时候如果没有发现此用户,可以返回一个error json错误给ajax,这样就可以使其跳转到ajax的error方法里。 Map<String, String> map = new HashMap<String, String>(); map.put("check_type", "ok"); // 上面的map不是json当然是不可以用于返回的,于是呢我们要把它搞成json字符串,你也可以自己去拼json字符串。 JSONObject json = JSONObject.fromObject(map); if (falg) { check_return = json.toString(); // 正确就将json 字符化 } else { map.put("check_type", "false"); json = JSONObject.fromObject(map); check_return = json.toString(); } System.out.println("json----:" + getCheck_return()); return check_return; }
总结
这个方法是可以实现的,亲测有效,网上有好多代码都有问题,尝试了很多次才找到一个有效的方法,希望可以帮助有需要的人,一天一个坑,天天坑快乐。参考博客
springmvc ajax传递对象至controller的方法相关文章推荐
- 干货来袭,java用户登录与注销(前台+后台 框架springboot)
- ajax传递参数,后台如何接受对象(关于contentType: “application/json”)
- jquery ajax 传递js对象到后台
- ASP.NET MVC中,后台向前台传递多个对象(表)的方法
- jquery中ajax向action传递对象参数,json ,spring注入对象
- Spring cloud restTemplate 传递复杂参数的方式(多个对象)
- Form表单传递List数组属性到后台对象中
- ajax传值给spring后台(json),参数自动转换为对象,controller中用@RequestBody 获取
- ajax向后台传递多个对象
- JSON向Struts2后台传递复杂对象--传对象、集合
- springMVC+thymeleafform表单提交前后台数据传递
- Spring Boot Spring Security 后台注销用户
- 同一个数据库实例,不同用户下多表创建视图,Hibernate完成ORM映射,Spring整合,后台实现
- 【Java框架型项目从入门到装逼】第十一节 用户新增之把数据传递到后台
- springMvc 前端用json的方式向后台传递对象数组
- Jquery小技巧之多参传递,后台(controller)用一对象接收
- swagger与spring 进行对象传递
- 页面传递Json对象,后台解析
- ajax 传递对象 后台接受映射 不成功
- Java 客户端后台使用HTTP POST传递对象参数到服务器端