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对象
已经都被赋值成功