2019独角兽企业重金招聘Python工程师标准>>>

Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。如:dept.deptId、dept.address等

说的通俗点就是,平时我们想将请求页面的表单数据接收并封装成特定对象的时候,少不了做的是在某个servlet的对应方法中从request中将各个表单参数取出,类型转换好,构造一个特定类型的对象,再把表单参数都存进去。

只要你能保证请求页面的表单输入项的name与POJO对象类的域名称相同即可。

另外,springMVC的该功能还支持级联属性,也就是支持POJO中的域是另一个POJO对象的情况。相应地,表单的name写为:pojo1的域名.pojo2的域名

例如:

Person类

public class Person {public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Location getLocal() {return local;}public void setLocal(Location local) {this.local = local;}String username;int age;Location local;@Overridepublic String toString() {return "Person [username=" + username + ", age=" + age + ", local="+ local + "]";}
}

Location类

public class Location {public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}String city;String province;@Overridepublic String toString() {return "Location [city=" + city + ", province=" + province + "]";}
}

Controller

@Controller
@RequestMapping("/roger")
public class PojoRequestController {@RequestMapping(value = "/addPerson")public String addPerson() {return  "addPerson";}@@RequestMapping(value = "/showPerson", method = RequestMethod.POST)public  String showPerson(PrintWriter printWriter, Person person) {System.out.println("person:" + person.getName() + " " + person.getLocal().getCity());printWriter.println("name:" + person.getName());printWriter.println("city" + person.getLocal().getCity());return null;}
}

addPerson.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title></title>
</head>
<body><form action="showPerson" method="post">name:<input type="text" name="name"/><br>city:<input type="text" name="local.city"/><br><input type="submit" value="add"/></form>
</body>

注意:

  • 如果请求的表单参数中不存在pojo对象中的某个域名称的项目,则绑定后pojo该属性为null。

  • 如果请求的表单参数中存在pojo对象中没有包含的域的项目,则绑定后该参数丢失。

  • 如果表单项目的数据会自动从String转换为相应pojo的域类型。但如果类型无法转换,则报错。如果我输入age为dafsdfa,那么报错。

转载于:https://my.oschina.net/u/1020238/blog/505326

SpringMVC(三):使用 POJO 对象绑定请求参数值相关推荐

  1. SpringMVC使用 POJO 对象绑定请求参数值

    如果对怎么搭建一个SpringMVC存在疑问 ,可以查看我的博客前端有介绍SpringMVC的hello的详细教程 使用 POJO 对象绑定请求参数值 Spring MVC 会按• 请求参数名和 PO ...

  2. SpringMVC ------使用POJO对象绑定请求参数值

    2019独角兽企业重金招聘Python工程师标准>>> Spring MVC会按请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值.支持级联属性. 上代码: 首先配置请求 ...

  3. 使用POJO对象绑定请求参数

    1.介绍 2.Person.java 1 package com.spring.bean; 2 3 public class Person { 4 private String username; 5 ...

  4. 【SpringMVC】SpringMVC系列4之@RequestParam 映射请求参数值

    4.@RequestParam 映射请求参数值 4.1.概述 Spring MVC 通过分析处理方法的签名,将 HTTP 请求信息绑定到处理方法的相应人参中.Spring MVC 对控制器处理方法签名 ...

  5. springmvc(三) 参数绑定、

    前面两章就介绍了什么是springmvc,springmvc的框架原理,并且会简单的使用springmvc以及ssm的整合,从这一章节来看,就开始讲解springmvc的各种功能实现,慢慢消化 --W ...

  6. Hibernate三种状态;query查询;ResultTransformer转换为pojo对象;可以将query语句写在xml中;Criteria查询;ProjectionList总和/f分组等函数

    Session操作过程中的pojo对象存在三种状态: 1)  瞬时态:该对象在数据库中没有对应的数据 2)  持久态:数据库中存在该对象对应的数据,同时操作该对象的Session也存在. 3)  游离 ...

  7. SpringMVC之Controller和参数绑定

    在上一篇Spring+SpringMVC+Mybatis整合中说到了SSM的整合,并且在其中添加了一个简单的查询功能,目的只是将整个整合的流程进行一个梳理,下面在上一篇中工程的基础上再说一些关于Spr ...

  8. java元婴期(29)----java进阶(springmvc(3)---springmvc和mybatis整合参数绑定(上))

    springmvc和mybatis整合 需求 使用springmvc和mybatis完成商品列表查询. 整合思路 springmvc+mybaits的系统架构: 第一步:整合dao层 mybatis和 ...

  9. java元婴期(30)----java进阶(springmvc(4)---参数绑定(下)springmvc校验异常处理)

    包装类型pojo参数绑定 需求 商品查询controller方法中实现商品查询条件传入. 实现方法 第一种方法:在形参中 添加HttpServletRequest request参数,通过reques ...

最新文章

  1. 解决.Net Core跨域问题
  2. 又搜集一批项目源码,同样改改就能用
  3. 物联网和前端技术,两者相辅相成并且互相促进 —— 阿里云 MVP 黄强专访
  4. Windows Mobile Incoming Call View Custom
  5. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系
  6. springMVC视图解析器的配置和使用
  7. 【渝粤教育】电大中专测量学 (4)作业 题库
  8. ACCESS_REFUSED - operation not permitted on the default exchange
  9. 删除设备和驱动器下的百度云盘的图标
  10. Day4----类训练(搬家具、烤地瓜)
  11. hive_hbase一个综合练习题目总共包括以下部分
  12. 2022起重机械指挥判断题及答案
  13. js将网页保存成图片
  14. sourctree Commit merged changes immediately选项解读
  15. 大数据元数据管理系统有哪些功能
  16. 人工智能(AI)背后人工的力量——数据标注
  17. Java入门 18 3\25
  18. 证监计算机类专业知识,2020国考中国证监会计算机类专业考什么?
  19. 软考网络工程师备考详细介绍
  20. 谷歌机器学习主管:10年自学数据科学的3点心得体会

热门文章

  1. Redis低成本高可用方案设计
  2. 2w字长文,让你瞬间拥有「调用链」开发经验
  3. 漫话:如何给女朋友解释什么是单例模式?
  4. Spring Cloud第十二篇:断路器监控(Hystrix Dashboard)
  5. 万能 Transformer,你应该知道的一切
  6. 预训练图像处理Transformer
  7. GitHub:数据科学最全资料集合
  8. 靠数学“拿了”两次诺贝尔奖,彭罗斯从“铺地砖”帮忙发现2011年化学奖的秘密...
  9. 拿到腾讯字节快手 offer 后,他的 LeetCode 刷题经验在 GitHub 火了!
  10. 周志华:“数据、算法、算力”,人工智能三要素在未来还要加上“知识”