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. PhotoZoom Classic 7有什么用?高品质的放大模糊图片!

    PhotoZoom Classic 7专门用于放大照片,同时保持质量.该软件配备了BenVista独特的S-Spline技术,可轻松超越Photoshop的双三次插值等替代解决方案. PhotoZoo ...

  2. Python基础:编码

    1:先说python2py2里默认编码是ascii文件开头那个编码声明是告诉解释这个代码的程序 以什么编码格式 把这段代码读入到内存,因为到了内存里,这段代码其实是以bytes二进制格式存的,不过即使 ...

  3. java调用第三方命令,process.waitfor()挂起(你不知道的坑)

    我们常在java中运行第三方程序,如sh.python,java提供一个Runtime.exec()方法,生成一个Process对象.今天在使用这个方法的时候,发现接口半天没有返回数据.查了一下,原来 ...

  4. BZOJ 3456: 城市规划 多项式求逆

    Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了.  刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接 ...

  5. cent os 安装mariaDB / mySQL 之后初始化的命令

      #安装mysql mysql-server,默认安装的是开源的mariaDB和它的server,mariadb-server,安装源中可能有找不到的,就换个名字再找找 yum install -y ...

  6. hdu 4826

    hdu 4826 题意 度度熊是一只喜欢探险的熊,一次偶然落进了一个 $ m * n $ 矩阵的迷宫,该迷宫只能从矩阵左上角第一个方格开始走,只有走到右上角的第一个格子才算走出迷宫,每一次只能走一格, ...

  7. docker 私有仓库的两种方式

    1.使用官方默认的registry镜像构建本地仓库 这种方式适用于小规模的镜像仓库储存,没有Ui界面 (1)docker pull registry (2)docker run -d -p 5000: ...

  8. java的基本数据类型及运算符等

    基本数据类型 一.整数(整形) 值域 1. byte [-128,127] 2.short [-32768,32767] 3.int [-2147483648,2147483647] 4.long [ ...

  9. 如何用Vim提高开发效率

    即可 ●输入m获取到文章目录 推荐↓↓↓ C/C++编程 更多推荐<18个技术类公众微信> 涵盖:程序人生.算法与数据结构.黑客技术与网络安全.大数据技术.前端开发.Java.Python ...

  10. C#中的Dynamic

    dynamic dyn = (dynamic)1; int j = (int)dyn; 可以看到1被强制转换成dynamic,然后又被强制转换回int. 然而dynamic可以隐式的转换成任何类型,并 ...