概述
Ajax和springMVC结合使用传递数据报错处理
用Ajax请求传递表单数据时发生错误,原因:我的实体类中包含另一个实体类,因为没考虑到这个因素所以报错
实体类对象如下:
public class Student {
private int id,age;
private String name,grade;
//实体类对象中包含的另一个类
private Classes classes;
//set、get方法、有参无参构造和tostring方法省略
}
被包含的实体类代码
public class Classes {
private int id;
private String grade;
}
Ajax请求的url地址中的方法代码如下:
@Controller
@RequestMapping("/stu")
public class StrudentController{
@RequestMapping("/addstu")
@ResponseBody
public String addStu(Student stu) {
System.out.println("没有毛病进来了");
return "haode";
}
}
Ajax请求错误代码如下
<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已有的数据类型,但是代码中有我们自定义的数据类型,所以导致传递数据不成功导致报错。
错误修改
<!-- "classes":$("#classes").val() -->
<!-- 只需要将上面的代码改编成下面的代码即可
-->
<!-- "classes.id":$("#classes").val() -->
<!-- 上面代码的.id是被包含类中的属性名称 -->
最后
以上就是儒雅水蜜桃为你收集整理的Ajax请求将数据传递因类中包含其他类导致传递数据报错的全部内容,希望文章能够帮你解决Ajax请求将数据传递因类中包含其他类导致传递数据报错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复