SpringMVC数据绑定

1、基本数据类型
@RequestMapping
      public   void  test1(String name, Integer age, Double income, Boolean isMarried, String[] interests)
    {
        System.out.println( "简单数据类型绑定=========");
        System.out.println( "名字:"   +  name);
        System.out.println( "年龄:"   +  age);
        System.out.println( "收入:"   +  income);
        System.out.println( "已结婚:"   +  isMarried);
        System.out.println( "兴趣:");
          for  (String interest   :  interests)
        {
            System.out.println(interest);
        }
        System.out.println( "====================");
    }

    < form   action= "test1.do"   method= "post">
        < div   class= "f_left">姓名:</ div>
        < div   class= "f_left">< input   name= "name"   value= "张三"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">年龄:</ div>
        < div   class= "f_left">< input   name= "age"   value= "20"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">收入:</ div>
        < div   class= "f_left">< input   name= "income"   value= "100000"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">结婚:</ div>
        < div   class= "f_left">
        < input   type= "radio"   name= "isMarried"   value= "true"   checked= "checked"/>是
        < input   type= "radio"   name= "isMarried"   value= "false"/>否</ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">兴趣:</ div>
        < div   class= "f_left">
        < input   type= "checkbox"   name= "interests"   value= "听歌"   checked= "checked"/>听歌
        < input   type= "checkbox"   name= "interests"   value= "书法"   checked= "checked"/>书法
        < input   type= "checkbox"   name= "interests"   value= "看电影"   checked= "checked"/>看电影
        </ div>
        < div   class= "clear"></ div>
        < div>< input   type= "submit"   value= "提交表单"/></ div>
    </ form>


2、简单对象类型
与基本类型相拟,只不过绑定到对象上更加简洁.
@RequestMapping
      public   void  test2(User user)
    {
        System.out.println( "简单对象类型绑定=========");
        System.out.println( "名字:"   +  user.getName());
        System.out.println( "年龄:"   +  user.getAge());
        System.out.println( "收入:"   +  user.getIncome());
        System.out.println( "已结婚:"   +  user.getIsMarried());
        System.out.println( "========================");
    }

public   class  User {
      private  String name;
      private  Integer age;
      private  Boolean isMarried;
      private  Double income;
      private  String[] interests;
 
      public  String getName() {
          return  name;
    }
      public   void  setName(String name) {
          this.name   =  name;
    }
      public  Integer getAge() {
          return  age;
    }
      public   void  setAge(Integer age) {
          this.age   =  age;
    }
      public  Boolean getIsMarried() {
          return  isMarried;
    }
      public   void  setIsMarried(Boolean isMarried) {
          this.isMarried   =  isMarried;
    }
      public  Double getIncome() {
          return  income;
    }
      public   void  setIncome(Double income) {
          this.income   =  income;
    }
      public  String[] getInterests() {
          return  interests;
    }
      public   void  setInterests(String[] interests) {
          this.interests   =  interests;
    }
}

< form   action= "test2.do"   method= "post">
        < div   class= "f_left">姓名:</ div>
        < div   class= "f_left">< input   name= "name"   value= "lxf"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">年龄:</ div>
        < div   class= "f_left">< input   name= "age"   value= "20"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">收入:</ div>
        < div   class= "f_left">< input   name= "income"   value= "100000"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">结婚:</ div>
        < div   class= "f_left">
        < input   type= "radio"   name= "isMarried"   value= "true"   checked= "checked"/>是
        < input   type= "radio"   name= "isMarried"   value= "false"/>否</ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">兴趣:</ div>
        < div   class= "f_left">
        < input   type= "checkbox"   name= "interests"   value= "听歌"   checked= "checked"/>听歌
        < input   type= "checkbox"   name= "interests"   value= "书法"   checked= "checked"/>书法
        < input   type= "checkbox"   name= "interests"   value= "看电影"   checked= "checked"/>看电影
        </ div>
        < div   class= "clear"></ div>
        < div>< input   type= "submit"   value= "提交表单"/></ div>
    </ form>


3、List类型绑定
关键在于,List需要绑定在对象,直接写在request-mapping函数的参数是不行的,更重要的一点是要创建对象(ArrayList).
@RequestMapping
      public   void  test3(Club club)
    {
        System.out.println( "list类型绑定=========");
        System.out.println( "会员:");
          for  (User user   :  club.getUsers())
        {
            System.out.println(user.getName());
        }
        System.out.println( "========================");
    }

public   class  Club {
      private  List <User >  users   =   new  ArrayList <User >();
 
      public  List <User >  getUsers() {
          return  users;
    }
 
      public   void  setUsers(List <User >  users) {
          this.users   =  users;
    }
}

< form   action= "test3.do"   method= "post">
        < div   class= "f_left">会员 1号:</ div>
        < div   class= "f_left">
        < input   name= "users[0].name"   value= "张三"/>
        </ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">会员 2号:</ div>
        < div   class= "f_left">
        < input   name= "users[1].name"   value= "李四"/>
        </ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">会员 3号:</ div>
        < div   class= "f_left">
        < input   name= "users[2].name"   value= "王五"/>
        </ div>
        < div   class= "clear"></ div>
        < div>< input   type= "submit"   value= "提交表单"/></ div>
    </ form>


4、Set类型绑定
与List类型相似,经测试表明,绑定Set数据时,必须先在Set对象中Add相应的数量的模型对象.
@RequestMapping
      public   void  test4(Club2 club)
    {
        System.out.println( "set类型绑定=========");
        System.out.println( "会员:");
          for  (User user   :  club.getUsers())
        {
            System.out.println(user.getName());
        }
        System.out.println( "========================");
    }

public   class  Club2 {
      private  Set <User >  users   =   new  LinkedHashSet <User >();
 
      public  Club2() {
        users.add( new  User());
        users.add( new  User());
        users.add( new  User());
    }
 
      public  Set <User >  getUsers() {
          return  users;
    }
      public   void  setUsers(Set <User >  users) {
          this.users   =  users;
    }
}

< form   action= "test4.do"   method= "post">
        < div   class= "f_left">会员 1号:</ div>
        < div   class= "f_left">
        < input   name= "users[0].name"   value= "张三"/>
        </ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">会员 2号:</ div>
        < div   class= "f_left">
        < input   name= "users[1].name"   value= "李四"/>
        </ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">会员 3号:</ div>
        < div   class= "f_left">
        < input   name= "users[2].name"   value= "王五"/>
        </ div>
        < div   class= "clear"></ div>
        < div>< input   type= "submit"   value= "提交表单"/></ div>
    </ form>


5、Map类型绑定
最灵活的一种方式,可无限绑定未定义的参数,注意必须绑定在对象下
@RequestMapping
      public   void  test5(UserForm userForm)
    {
        System.out.println( "Map类型绑定=========");
        System.out.println( "名字:"   +  userForm.getUser().get( "name"));
        System.out.println( "年龄:"   +  userForm.getUser().get( "age"));
        System.out.println( "收入:"   +  userForm.getUser().get( "income"));
        System.out.println( "已结婚:"   +  userForm.getUser().get( "isMarried"));
        System.out.println( "========================");
    }

public   class  UserForm {
      private  Map <String, String >  userMap   =   new  LinkedHashMap <String, String >();
      private  User user   =   new  User();
 
      public  Map <String, String >  getUserMap() {
          return  userMap;
    }
      public   void  setUserMap(Map <String, String >  userMap) {
          this.userMap   =  userMap;
    }
      public  User getUser() {
          return  user;
    }
      public   void  setUser(User user) {
          this.user   =  user;
    }
}

< form   action= "test5.do"   method= "post">
        < div   class= "f_left">姓名:</ div>
        < div   class= "f_left">< input   name= "user['name']"   value= "张三"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">年龄:</ div>
        < div   class= "f_left">< input   name= "user['age']"   value= "20"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">收入:</ div>
        < div   class= "f_left">< input   name= "user['income']"   value= "100000"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">结婚:</ div>
        < div   class= "f_left">
        < input   type= "radio"   name= "user['isMarried']"   value= "true"   checked= "checked"/>是
        < input   type= "radio"   name= "user['isMarried']"   value= "false"/>否</ div>
        < div   class= "clear"></ div>
        < div>< input   type= "submit"   value= "提交表单"/></ div>
    </ form>


6、复合类型绑定
@RequestMapping
      public   void  test6(UserForm userForm)
    {
        System.out.println( "复合类型绑定=========");
        System.out.println( "名字:"   +  userForm.getUser().getName());
        System.out.println( "年龄:"   +  userForm.getUser().getAge());
        System.out.println( "收入:"   +  userForm.getUser().getIncome());
        System.out.println( "已结婚:"   +  userForm.getUser().getIsMarried());
        System.out.println( "========================");
    }

public   class  UserForm {
      private  Map <String, String >  userMap   =   new  LinkedHashMap <String, String >();
      private  User user   =   new  User();
 
      public  Map <String, String >  getUserMap() {
          return  userMap;
    }
      public   void  setUserMap(Map <String, String >  userMap) {
          this.userMap   =  userMap;
    }
      public  User getUser() {
          return  user;
    }
      public   void  setUser(User user) {
          this.user   =  user;
    }
 }

    < form   action= "test6.do"   method= "post">
        < div   class= "f_left">姓名:</ div>
        < div   class= "f_left">< input   name= "user.name"   value= "张三"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">年龄:</ div>
        < div   class= "f_left">< input   name= "user.age"   value= "20"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">收入:</ div>
        < div   class= "f_left">< input   name= "user.income"   value= "100000"/></ div>
        < div   class= "clear"></ div>
        < div   class= "f_left">结婚:</ div>
        < div   class= "f_left">
        < input   type= "radio"   name= "user.isMarried"   value= "true"   checked= "checked"/>是
        < input   type= "radio"   name= "user.isMarried"   value= "false"/>否</ div>
        < div   class= "clear"></ div>
        < div>< input   type= "submit"   value= "提交表单"/></ div>
    </ form>









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值