如果对怎么搭建一个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;
}
@Override
public 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;
}
@Override
public 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;
@Controller
public 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类的属性名一致,当存在多层次的时候,可以用’.'进行层次上的表示,具体看上面的例子