161229、SpringMVC的各种参数绑定方式

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。

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

  

时间: 2024-11-05 16:25:44

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

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

SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" ty

SpringMVC的各种参数绑定方式

1. 基本数据类型(以int为例,其他类似):  Controller代码: 1 @RequestMapping("saysth.do") 2 public void test(int count) { 3 } 表单代码: 1 <form action="saysth.do" method="post"> 2 <input name="count" value="10" type=&quo

Spring MVC (二 ) ---- 各种参数绑定方式

转载自:http://www.cnblogs.com/HD/p/4107674.html SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input n

23SpringMvc_各种参数绑定方式-就是&lt;input那种

本篇博文转载自http://www.cnblogs.com/HD/p/4107674.html: SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <inp

【SpringMVC学习05】SpringMVC中的参数绑定总结

众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题. 1. 参数绑定的过程 我们可以回忆一下,在struts2中,是通过在Action中定义一个成员变量来接收前台传进来的参数,而在springmvc中,接收页面提交的数据是通过方法形参来接收的.从客户端请求的key/value数据,经

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

众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题. 本篇建议不敲代码 只是看看 因为无法很好衔接 上一篇: 1. 参数绑定的过程 我们可以回忆一下,在struts2中,是通过在Action中定义一个成员变量来接收前台传进来的参数,而在springmvc中,接收页面提交的数据是通过方

SpringMVC中的参数绑定总结

众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题. 1. 参数绑定的过程 我们可以回忆一下,在struts2中,是通过在Action中定义一个成员变量来接收前台传进来的参数,而在springmvc中,接收页面提交的数据是通过方法形参来接收的.从客户端请求的key/value数据,经

SpringMVC中的参数绑定

SpringMVC中的参数绑定 参数绑定的定义 所谓参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller.从客户端请求key/value数据(比如get请求中包含的数据),经过参数绑定,将key/value数据绑定到controller方法的形参上.springmvc中,接收页面提交的数据是通过方法形参来接收.而不是在controller类定义成员变量接收. SpringMVC中默认支持的类型 自定义参数类型进行绑定 对于有些参数类型,由于我们输

SpringMvc中初始化参数绑定

初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法  使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型   propertyEditor为属性编辑器,此处我们选用 CustomDateEditor属性编辑器, 参数一为想转换的日期格式,参数二表示是否允许为空 package cn.controller; import java.text.DateFormat; import java.text.SimpleDateF