如果对怎么搭建一个SpringMVC存在疑问 ,可以查看我的博客前端有介绍SpringMVC的hello的详细教程
使用 POJO 对象绑定请求参数值
Spring MVC 会按• 请求参数名和 POJO 属性名进行自动匹
配,自动为该对象填充属性值。支持级联属性。
如:dept.deptId、dept.address.tel 等
1.下面以普通实体类User和Address作为例子
package com.sunnylong.springmvcstady.pojo;public class User {public User() {// TODO Auto-generated constructor stub}private String userName;private String password;private Integer age;private Address address;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}@Overridepublic String toString() {return "User [userName=" + userName + ", password=" + password + ", age=" + age + ", address=" + address + "]";}}
2.Address类
package com.sunnylong.springmvcstady.pojo;public class Address {public Address() {// TODO Auto-generated constructor stub}private String prevince;private String city;public String getPrevince() {return prevince;}public void setPrevince(String prevince) {this.prevince = prevince;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic String toString() {return "Address [prevince=" + prevince + ", city=" + city + "]";}}
3.控制类以及响应函数
package com.sunnylong.springmvcstady.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.sunnylong.springmvcstady.pojo.User;@Controllerpublic class HelloWord {@RequestMapping(value="/testPojoUser" ,method=RequestMethod.POST)public String testPojoUser(User user) {System.out.println(user);return "success";}}
4.编写请求页面
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><form action="testPojoUser" method="post"><br>userName:<input type="text" name="userName" /><br>password:<input type="password" name="password" /><br>age:<input type="text" name="age"/><br>privince:<input type="text" name="address.prevince"/><br>city:<input type="text" name="address.city"/><input type="submit" value="提交"/></form></body></html>
index.jsp页面输入
后台打印结果:
总结:
1.在SpringMVC中,这种前端后端的传数据的方式是比较常用的,用过编写pojo实体类,将请求的参数映射到实体类,而且支持多层次注入。
2. 需要特别注意的是 input 标签的属性name其值必须与pojo类的属性名一致,当存在多层次的时候,可以用’.'进行层次上的表示,具体看上面的例子