springmvc中复杂数据绑定以及表单回显实现

本文详细介绍Spring MVC框架中的复杂数据绑定技术,包括POJO类、列表和数组类型的绑定方式,并提供具体示例代码和表单回显机制的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做这个测试,请首先搭建好ssm整合demo,可以参考

我的这篇文章:http://blog.youkuaiyun.com/do_bset_yourself/article/details/51298799

1.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);
        */      
       }

就会自动回显,我们只需要了解即可,而基本数据的回显,需要手动操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值