首先是页面
此页面时一个表单
只要是选中的数据,就往后台传,没选中但是有数据,则不传递。此页面的代码如下
策略名称 | ||
策略编号 | ||
免费时长: | 分钟 超过 分钟后计算全部费用 | |
不到30分钟不收费,超过30分钟只收超时费用。 | ||
免费时段: | -- | |
计费循环单位: | ||
白天时段: | -- | |
计费方式: | 白天: 夜间: | |
按时段: | -- 共元 | |
按时长: | - 小时 按 元/ 分钟 | |
大于 小时 按 元/ 分钟 | ||
过夜费: | 开始,夜间时段停车超过 分钟 需增加 元过夜费 | |
收费限额: | 元 |
表单要进行序列化,必须添加给需要的标签添加name属性,否则无用
js文件中的写法如下:
var arr = $('#polForm').serialize();
$.param(arr);
console.log("表单序列化=============="+arr);
$.ajax({
url:"/epark/testt.do",
data:arr,
type:"post",
dataType:"json",
success:function(data){
alert("测试发送接收成功");
},
error:function(){
console.log("失败");
}
})
注意,ajax方法中data传递的是arr,那么问题来了,后台的方法接受时,参数是怎么传递的? 首先,创建一个实体类,要求类的属性和表单中name对应,如下图
然后就是Controller方法了,如下所示,直接把前台传过来的参数写成对应的实体类,会自动进行封装
@RequestMapping("/testt")
@ResponseBody
public void login(Book arr){
System.out.println(arr.toString);
}
经过测试,可以实现如下功能: 如果form表单中元素有我们需要的数据,如果被选中则提交,不被选中则不提交,前台传递到后台的参数,会自动封装到对应的实体类中