springmvc中复杂数据绑定以及表单回显实现
2016-05-04 13:24
525 查看
做这个测试,请首先搭建好ssm整合demo,可以参考
我的这篇文章:http://blog.csdn.net/do_bset_yourself/article/details/512987991.springmvc的复杂数据绑定 :
首先贴出:原始po类public class Student { private Integer sid; private String name; private Integer age; setter.. getter.. }
包装类型po
public class StudentVo{ private List<Student> students; public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } }
1. 包装类型的po类数据,以及list绑定
页面
包装类型po,及list类型绑定 <form action="${pageContext.request.contextPath }/student/addStudent.action" method="post"> 1: name<input type="text" name="students[0].name"><br/> age:<input type="text" name="students[0].age"><br/> <hr/> name<input type="text" name="students[1].name"><br/> age:<input type="text" name="students[1].age"><br/> <hr/> name<input type="text" name="students[2].name"><br/> age:<input type="text" name="students[2].age"><br/> <hr/> <input type="submit" value="批量添加"> </form>
contrler代码实现参数绑定,注意页面只需要写参数的属性就可以实现绑定
/** * @param model * @param studentVo * 实现复杂类型的数据绑定及list<po>绑定 */ @RequestMapping("/addStudent.action") public String addStudents(Model model,StudentVo studentVo){ studentService.addStudents(studentVo); return "index"; }
2. 数组绑定,po类数组也是一样的
页面定义
springmvc数据绑定,数组类型数据绑定: <form action="${pageContext.request.contextPath }/student2/selectStudentsByIds.action" method="post"> id:<input type="text" name="sids" ><br/> id:<input type="text" name="sids" ><br/> id:<input type="text" name="sids" ><br/> <input type="submit" value="查询" > </form>
controler代码
/** * @param model * @param sids * @return * * * 根据多个id查询数据,即验证数组类型数据绑定 */ @RequestMapping("/selectStudentsByIds.action") public String selectStudents(Model model,Integer[] sids){ //查询 List<Student> students=studentService.selectStudent(sids); //设置显示 model.addAttribute("students", students); //返回视图 return "showStudents"; }
传递数组时,注意使用相同的name,即数组参数名
springmvc中表单回显机制简介
springmvc中表单回显基本没有介绍的必要因为 springmvc默认是支持po类回显的,会默认将执行po类的回显,如果你的页面参数和controler方法中参数一致,就会自动回显例如
页面中定义表单为:
<form action="${pageContext.request.contextPath }/student/insert.action" method="post"> name<input type="text" name="name" value="${student.name }"><br/> age:<input type="text" name="age" value="${student.age }"><br/> <input type="submit" value="添加" >
controler中如下
@RequestMapping("/insert.action") public String insertStudent(Model model, Student student){ /*就会会默认将执行model.addAttribute("student", student); * 注意,key的值就是参数的值,如果页面不一致和参数不一致需要手动回显 * 而基本数据的回显,需要手动操作model.addAttribute("sid", sid); */ }
就会自动回显,我们只需要了解即可,而基本数据的回显,需要手动操作
相关文章推荐
- 在线用表单建立文件夹
- Jquery 表单取值赋值的一些基本操作
- javascript 表单的友好用户体现
- js 提交和设置表单的值
- 攻克CakePHP系列二 表单数据显示
- JavaScript获取页面中表单(form)数量的方法
- 网页中表单按回车就自动提交的问题的解决方案
- 分享纯手写漂亮的表单验证
- Bootstrap表单组件教程详解
- 超实用的JavaScript表单代码段
- js实现不提交表单获取单选按钮值的方法
- js实现文件上传表单域美化特效
- 第四章之BootStrap表单与图片
- JavaScript实现重置表单(reset)的方法
- javascript实现自动填写表单实例简析
- JavaScript实现同一页面内两个表单互相传值的方法
- JS中表单的使用小结
- 封装好的一个万能检测表单的方法
- Bootstrap每天必学之表单
- javascript创建动态表单的方法