Ajax和springMVC结合使用传递数据报错处理
用Ajax请求传递表单数据时发生错误,原因:我的实体类中包含另一个实体类,因为没考虑到这个因素所以报错
实体类对象如下:
复制代码
1
2
3
4
5
6
7
8public class Student { private int id,age; private String name,grade; //实体类对象中包含的另一个类 private Classes classes; //set、get方法、有参无参构造和tostring方法省略 }
被包含的实体类代码
复制代码
1
2
3
4
5public class Classes { private int id; private String grade; }
Ajax请求的url地址中的方法代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11@Controller @RequestMapping("/stu") public class StrudentController{ @RequestMapping("/addstu") @ResponseBody public String addStu(Student stu) { System.out.println("没有毛病进来了"); return "haode"; } }
Ajax请求错误代码如下
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32<form id="forms"> <input type="text" id="id" name="id" placeholder="序号" > <input type="text" id="name" name="name" placeholder="姓名"> <input type="text" id="age" name="age" placeholder="年龄" > <input type="text" id="name" name="grade" placeholder="啥也不是" > <input type="text" id="classes" name="classes" placeholder="年级" > <input id="button" type="button" value="提交" > </form> <script type="text/javascript"> $(document).ready(function (){ $("#button").click(function (){ $.ajax({ url:"stu/addstu.action", method:"post", dataType:"json", data:/* $("#forms").serialize(), */ { "id":$("#id").val(), "name":$("#name").val(), "age":$("#age").val(), "grade":$("#grade").val(), <!-- 下面这行代码是有问题的 --> "classes":$("#classes").val() }, success:function (data){ alert(data) } }) }) }) </script>
注意上述有问题的代码,因为我们通过表格获取到的数据是String类型的数据,但是通过url传递过去的数据会根据参数通过匹配set方法自动转换成java已有的数据类型,但是代码中有我们自定义的数据类型,所以导致传递数据不成功导致报错。
错误修改
复制代码
1
2
3
4
5
6<!-- "classes":$("#classes").val() --> <!-- 只需要将上面的代码改编成下面的代码即可 --> <!-- "classes.id":$("#classes").val() --> <!-- 上面代码的.id是被包含类中的属性名称 -->
最后
以上就是儒雅水蜜桃最近收集整理的关于Ajax请求将数据传递因类中包含其他类导致传递数据报错的全部内容,更多相关Ajax请求将数据传递因类中包含其他类导致传递数据报错内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复