springmvc使用javabean作为请求参数
1 首先写两个javabean对象 person 和 address 代码如下。两个类之间的关系如代码中
package cn.bean.demo.bo; public class Person { private String name; private String number; private String sex; private String age; private Address address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "Person [name=" + name + ", number=" + number + ", sex=" + sex + ", age=" + age + ", address=" + address + "]"; } }
package cn.bean.demo.bo; public class Address { private String city; private String province; 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; } @Override public String toString() { return "Address [city=" + city + ", province=" + province + "]"; } }
2 编写控制器 使用person来作为请求参数
package cn.bean.demo.service; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import cn.bean.demo.bo.Person; @Controller @RequestMapping("/PojoService") public class PojoService { public final static String SUCCEEDD="show"; @RequestMapping(value="/testPojo",method=RequestMethod.POST) public String testPojo(Person person){ System.out.println("testPojo person :"+person); System.out.println(person.getAddress()); return SUCCEEDD; } }
3 写测试类:可以用httpclient来模拟。 我这使用表单进行测试的。 表单代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="PojoService/testPojo" method="post"> username:<input type="text" name="name"/> <br> number: <input type="text" name="number"/> <br> sex: <input type="text" name="sex"/> <br> age: <input type="text" name="age"/> <br> province: <input type="text" name="address.province"/> <br> city: <input type="text" name="address.city"/> <br> <input type="submit" value="subit"/> </form> </body> </html>
测试:
点击提交:为了方便看到控制器中的对象 ,进行断点。
表单中的属性都已经被填充到person对象中
继续向下 看到address对象
已经都被赋值成功
分类:
MVC
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?