SpringMVC接受json参数和jquery表单序列化

淩亂°似流年 2023-05-31 12:11 143阅读 0赞

html代码

  1. <form id="myform">
  2. user:<input type="text" name="username"><br>
  3. age:<input type="text" name="age" ><br>
  4. 爱好:<input type="checkbox" name="hobby" value="篮球"> 篮球
  5. <input type="checkbox" name="hobby" value="乒乓球"> 乒乓球
  6. <input type="checkbox" name="hobby" value="足球"> 足球
  7. </form>

1.传统方式接收参数,这里利用序列化时key-value的形式并且中间用&符号隔开

  1. $('#formbtn').click(function () {
  2. var serialize = $("#myform").serialize();
  3. console.log(serialize);
  4. $.post("/jsonTest",serialize,function (data) {
  5. console.log(data);
  6. })
  7. });

2.jquery表单序列化转json对象插件

  1. (function($){
  2. $.fn.serializeJson=function(){
  3. var serializeObj={ };
  4. var array=this.serializeArray();
  5. var str=this.serialize();
  6. $(array).each(function(){
  7. if(serializeObj[this.name]){
  8. if($.isArray(serializeObj[this.name])){
  9. serializeObj[this.name].push(this.value);
  10. }else{
  11. serializeObj[this.name]=[serializeObj[this.name],this.value];
  12. }
  13. }else{
  14. serializeObj[this.name]=this.value;
  15. }
  16. });
  17. return serializeObj;
  18. };
  19. })(jQuery);

3.利用插件序列化表单

在这里插入图片描述
运行时当表单接受复杂类型的数组参数时提交失败,原因如下,在请求头中这种请求头的方式不支持复杂类型的传输
在这里插入图片描述

修改ajax请求代码如下,这里将json数据转换成了json字符串,在后台接收时使用requestBody接收

  1. $.ajax({
  2. type:"post",
  3. url:"/jsonTest",
  4. data:JSON.stringify(serialize),
  5. contentType:"application/json;charset=UTF-8",
  6. success:function (data) {
  7. alert(data);
  8. }
  9. });

后台代码

  1. @RequestMapping("/jsonTest")
  2. @ResponseBody
  3. public String jsonTest(@RequestBody User user){
  4. System.out.println("测试json"+user);
  5. return "result";
  6. }

注意这里用到了json的依赖如下

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-core</artifactId>
  4. <version>2.9.8</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.fasterxml.jackson.core</groupId>
  8. <artifactId>jackson-databind</artifactId>
  9. <version>2.9.8</version>
  10. </dependency>

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读