1. 基本数据类型(以int为例,其他类似):

Controller代码:

@RequestMapping("saysth.do")

public void test(int count) {

}

表单代码:

<form action="saysth.do" method="post">

<input name="count" value="10" type="text"/>

......

</form>

表单中input的name值和Controller的参数变量名保持一致,就能完成数据绑定,如果不一致可以使用@RequestParam注解。需要注意的是,如果Controller方法参数中定义的是基本数据类型,但是从页面提交过来的数据为null或者”"的话,会出现数据转换的异常。也就是必须保证表单传递过来的数据不能为null或”",所以,在开发过程中,对可能为空的数据,最好将参数数据类型定义成包装类型,具体参见下面的例子。

2. 包装类型(以Integer为例,其他类似):

Controller代码:

@RequestMapping("saysth.do")

public void test(Integer count) {

}

表单代码:

<form action="saysth.do" method="post">

<input name="count" value="10" type="text"/>

......

</form>

和基本数据类型基本一样,不同之处在于,表单传递过来的数据可以为null或”",以上面代码为例,如果表单中num为”"或者表单中无num这个input,那么,Controller方法参数中的num值则为null。

3. 自定义对象类型:

Model代码:

public class User {

    private String firstName;

    private String lastName;

    public String getFirstName() {

        return firstName;

    }

    public void setFirstName(String firstName) {

        this.firstName = firstName;

    }

    public String getLastName() {

        return lastName;

    }

    public void setLastName(String lastName) {

        this.lastName = lastName;

    }

}

Controller代码:

@RequestMapping("saysth.do")

public void test(User user) {

}

表单代码:

<form action="saysth.do" method="post">

<input name="firstName" value="张" type="text"/>

<input name="lastName" value="三" type="text"/>

......

</form>

非常简单,只需将对象的属性名和input的name值一一匹配即可。

4. 自定义复合对象类型:

Model代码:

public class ContactInfo {

    private String tel;

    private String address;

    public String getTel() {

        return tel;

    }

    public void setTel(String tel) {

        this.tel = tel;

    }

    public String getAddress() {

        return address;

    }

    public void setAddress(String address) {

        this.address = address;

    }

}

public class User {

    private String firstName;

    private String lastName;

    private ContactInfo contactInfo;

    public String getFirstName() {

        return firstName;

    }

    public void setFirstName(String firstName) {

        this.firstName = firstName;

    }

    public String getLastName() {

        return lastName;

    }

    public void setLastName(String lastName) {

        this.lastName = lastName;

    }

    public ContactInfo getContactInfo() {

        return contactInfo;

    }

    public void setContactInfo(ContactInfo contactInfo) {

        this.contactInfo = contactInfo;

    }

}

Controller代码:

@RequestMapping("saysth.do")

public void test(User user) {

    System.out.println(user.getFirstName());

    System.out.println(user.getLastName());

    System.out.println(user.getContactInfo().getTel());

    System.out.println(user.getContactInfo().getAddress());

}

表单代码:

<form action="saysth.do" method="post">

<input name="firstName" value="张" /><br>

<input name="lastName" value="三" /><br>

<input name="contactInfo.tel" value="13809908909" /><br>

<input name="contactInfo.address" value="北京海淀" /><br>

<input type="submit" value="Save" />

</form>

User对象中有ContactInfo属性,Controller中的代码和第3点说的一致,但是,在表单代码中,需要使用“属性名(对象类型的属性).属性名”来命名input的name。

 上面是比较常用的,还有好几种,具体可以看原文链接。

  

161229、SpringMVC的各种参数绑定方式的更多相关文章

  1. [Spring MVC] - SpringMVC的各种参数绑定方式

    SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") publi ...

  2. SpringMVC的各种参数绑定方式

    1. 基本数据类型(以int为例,其他类似):2. 包装类型(以Integer为例,其他类似):3. 自定义对象类型:4. 自定义复合对象类型:5. List绑定:6. Set绑定:7. Map绑定: ...

  3. [转载]SpringMVC的Model参数绑定方式

    SpringMVC的各种参数绑定方式 http://www.cnblogs.com/HD/p/4107674.html springMVC中复杂嵌套对象.List等集合类型数据绑定 http://ww ...

  4. 23SpringMvc_各种参数绑定方式-就是<input那种

    本篇博文转载自http://www.cnblogs.com/HD/p/4107674.html: SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controlle ...

  5. springmvc的初始化参数绑定

    一.springmvc的初始化参数绑定 此种和我们之前说的类型转换非常相似,可以看作是一种类型转换 在初始化参数绑定时  重要的是参数类型 -------------------单日期的绑定 二. 配 ...

  6. SpringMVC介绍及参数绑定

    本节内容: SpringMVC介绍 入门程序 SpringMVC架构 SpringMVC整合MyBatis 参数绑定 SpringMVC和Struts2的区别 一.SpringMVC介绍 1. 什么是 ...

  7. SpringMVC中的参数绑定总结

    众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...

  8. 【SpringMVC学习05】SpringMVC中的参数绑定总结——较乱后期准备加入 同一篇幅他人的参数绑定

    众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...

  9. SpringMVC详解------参数绑定

    SpringMVC详解------参数绑定  转载于:https://blog.csdn.net/swebin/article/details/92795422 目录 1.SpringMVC 参数绑定 ...

随机推荐

  1. Oracel EBS - Response

    Oracle ERP Response:

  2. php上传大文件,提示出错

  3. Rails--n+1查询

    listings = Listing.includes(:property).where(id: ids)

  4. java swing文件内容检索工具

    Java相关技术 - 文件内容检索工具 拿到一个几百M甚至上G的project让你去学习 有时候你会想知道某个关键词是在哪个文件里 比如:spring MVC配置的@RequestMapping,你从 ...

  5. Log4J的入门简介学习【转】

    原文:http://blog.csdn.net/lengyuhong/article/details/5832799 简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以 ...

  6. iOS常见算法(二分法 冒泡 选择 快排)

    二分法: 平均时间复杂度:O(log2n) int halfFuntion(int a[], int length, int number)  { int start = 0; int end = l ...

  7. linux下常见的字符串处理

    linux下有许多对字符串文本的处理工具,diff,grep,awk,sed等等.. diff 比较两个文件的不同 [root@bogon diff]# diff file1 file2 以高亮的形式 ...

  8. Linux从零单排(一):Google Chrome的安装

    刚刚安装了Linux ubuntu16.10系统,先装上我一直习惯用的Google Chrome 安装步骤如下: 1.终端输入 sudo wget https://repo.fdzh.org/chro ...

  9. Android 自定义spinner下拉框实现

    一:前言本人参考博客:http://blog.csdn.net/jdsjlzx/article/details/41316417 最近在弄一个下拉框,发现Android自带的很难实现我的功能,于是去网 ...

  10. vim - char code and charset

    In normal mode, type ga to display the decimal and hex values for the character under the cursor, or ...