Command or form objects to bind request parameters to bean properties (via setters) or directly to fields, with customizable type conversion, depending on @InitBinder methods and/or the HandlerAdapter configuration. See the webBindingInitializer property on RequestMappingHandlerAdapter. Such command objects along with their validation results will be exposed as model attributes by default, using the command class class name - e.g. model attribute "orderAddress" for a command object of type "some.package.OrderAddress". The ModelAttribute annotation can be used on a method argument to customize the model attribute name used.

可以使用POJO类作为@RequestMapping方法的参数,SpringMVC会自动的将值,注入到POJO属性名与URL上参数名一致的属性中。并支持联级属性。

代码:

   1: public class User {

   2:     private String name;

   3:     private Integer age;

   4:     private Address address;

   5:  

   6:     public String getName() {

   7:         return name;

   8:     }

   9:  

  10:     public void setName(String name) {

  11:         this.name = name;

  12:     }

  13:  

  14:     public Integer getAge() {

  15:         return age;

  16:     }

  17:  

  18:     public void setAge(Integer age) {

  19:         this.age = age;

  20:     }

  21:  

  22:     public Address getAddress() {

  23:         return address;

  24:     }

  25:  

  26:     public void setAddress(Address address) {

  27:         this.address = address;

  28:     }

  29:  

  30:     @Override

  31:     public String toString() {

  32:         return "User{" +

  33:                 "name='" + name + '\'' +

  34:                 ", age=" + age +

  35:                 ", address=" + address +

  36:                 '}';

  37:     }

  38: }

  39:  

  40: public class Address {

  41:     private String province;

  42:     private String city;

  43:  

  44:     public String getProvince() {

  45:         return province;

  46:     }

  47:  

  48:     public void setProvince(String province) {

  49:         this.province = province;

  50:     }

  51:  

  52:     public String getCity() {

  53:         return city;

  54:     }

  55:  

  56:     public void setCity(String city) {

  57:         this.city = city;

  58:     }

  59:  

  60:     @Override

  61:     public String toString() {

  62:         return "Address{" +

  63:                 "province='" + province + '\'' +

  64:                 ", city='" + city + '\'' +

  65:                 '}';

  66:     }

  67: }

  68:  

  69: @Controller

  70: public class TestPOJO {

  71:  

  72:     @RequestMapping("/testPOJO")

  73:     public String testPOJO(User user) {

  74:         System.out.println(user);

  75:         return "success";

  76:     }

  77: }

URL:

   1: <form action="testPOJO">

   2:     <label>name:</label> <input type="text" name="name"/>

   3:     <br/>

   4:     <label>age:</label> <input type="text" name="age"/>

   5:     <br/>

   6:     <label>province:</label> <input type="text" name="address.province"/>

   7:     <br/>

   8:     <label>city:</label> <input type="text" name="address.city"/>

   9:     <br/>

  10:     <input type="submit" value="testPOJO"/>

  11: </form>

SpringMVC(六)POJO类作为 @RequestMapping方法的参数的更多相关文章

  1. 批量产生ssh2项目中hibernate带注解的pojo类的快捷方法

    近几个月一直在忙于项目组的ios应用项目的开发,没有太多时间去研究web应用方面的问题了.刚好,昨天有网友问到如何批量产生hibernate带注解的pojo类的快捷方法,所谓批量就是指将当前数据库中所 ...

  2. springmvc使用pojo和servlet原生api作为参数

    一.Pojo作为参数: 实体: package com.hy.springmvc.entities; public class User { private String username; priv ...

  3. C#通过反射获取类中的方法和参数个数,反射调用方法带参数

    using System; using System.Reflection; namespace ConsoleApp2 { class Program { static void Main(stri ...

  4. Object类的wait方法带参数和notifyAll方法

    相当于sleep( 5000 ) , 效果一样:

  5. SpringMVC中在Controller类的每个方法执行前调用某个方法的实现

    在使用SpringMVC做项目的时候,如果想在@Controller类中每个@RequestMapping方法执行前都调用某个方法,要怎么实现呢?答案是使用Spring的@ModelAttribute ...

  6. python(六):面型对象--类的特殊方法

    一.跟实例创建和执行有关的 __new__.__init__.__call__. 类加括号调用了__init__方法来创建一个实例对象.这一过程分成了两步: 类调用__new__来创建实例对象,__n ...

  7. 零基础学习java------38---------spring中关于通知类型的补充,springmvc,springmvc入门程序,访问保护资源,参数的绑定(简单数据类型,POJO,包装类),返回数据类型,三大组件,注解

    一. 通知类型 spring aop通知(advice)分成五类: (1)前置通知[Before advice]:在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常. (2)正常返回通知 ...

  8. 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]

    目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumen ...

  9. SpringMVC 基于注解的Controller @RequestMapping @RequestParam..

    概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...

随机推荐

  1. 转载:jquery 对 Json 的各种遍历

    概述 JSON(javascript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式 ...

  2. Maven安装+配置

    原先的项目构建属于Ant,就是先export成jar文件,然后引用. Maven依赖一定是引用本地仓库的,所以会先从中央仓库把依赖下载下来存到本地.和NuGet是一样的. 下载 地址 选择一个zip, ...

  3. USACO 2008 Mar Silver 3.River Crossing 动态规划水题

    Code: #include<cstring> #include<algorithm> #include<cstdio> using namespace std; ...

  4. 用haproxy实现nginx的proxy_pass转发功能

    公司的网站有个需求,主站点上有两个URL,没有在本地nginx上配置,而是在另一台主机的nginx上配置的站点.如果使用nginx作为反向代理,可以使用proxy_pass指令转发对这两个URL的请求 ...

  5. iview datepicker 选择的时间少一天

    使用iview的datepicker时间选择器发现获取的value值是比实际要少一天,严格来说应该是时间格式不一样,datepicker获取的时间是UTC时间格式,也就是:yyyy-MM-ddTHH: ...

  6. [SDOI2016]生成魔咒(后缀自动机)

    看一眼题.本质不同的字串数. 嘴角微微上扬. 每一次加一个数输出一个答案. 笑容渐渐消失. 等等,\(SAM\)好像也可以求本质不同的字串. 设当前字符串用\(x\)表示,每次插入完成后\(ans\) ...

  7. POJ3984-迷宫问题【BFS】

    定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...

  8. 洛谷P1739 表达式括号匹配

    题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返 ...

  9. Python全双工聊天

    全双工聊天 全双工聊天:服务端和客户端都可以发送并接收信息. 使用select模块中的select方法 select(rlist, wlist, xlist[, timeout]) -> (rl ...

  10. 1.1 Eclipse的安装

    下载地址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr1 2.java jdk 的 ...