代码承接上一篇。
1. 为了简便代码,在pom中引入lombok的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
2. 创建实体类 User(domain 目录下)
@Data
public class User implements Serializable {
private String uname;
private Integer age;
}
由于lombok依赖的缘故,此处@Data可以帮我们自动添加 get、set 以及 toString 方法。
3. 在 Account 中加入 User 属性
@Data
public class Account implements Serializable {
private String username;
private String password;
private String money;
private User user;
}
4. 配置 param.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Param</title>
</head>
<body>
<%--<a href="param/testParam?username=hehe&password=123">请求参数绑定</a>--%>
<form action="param/saveAccount" method="post">
姓名:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"><br/>
金额:<input type="text" name="money"><br/>
<input type="text" name="user.uname"><br/>
<input type="text" name="user.age"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
5. 在 web.xml 中配置过滤器解决中文乱码
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--配置前端控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--让DispatcherServlet加载路径classpath下的springmvc.xml配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--DispatcherServlet类默认是第一次发请求的时候创建-->
<!--配置load-on使在启动服务器时就开始创建DispatcherServlet
它被创建后就可以加载springmvc配置文件了-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern> <!--'/'表示发任何的请求都会经过servlet-->
</servlet-mapping>
<!--配置解决中文乱码的过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
6. 实体类中的集合属性的封装
在 Account.java 中添加集合属性
@Data
public class Account implements Serializable {
private String username;
private String password;
private String money;
// private User user;
private List<User> list;
private Map<String, User> map;
}
param.jsp:
<%--把数据封装到Account类中,类中存在list和map的集合--%>
<form action="param/saveAccount" method="post">
姓名:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"><br/>
金额:<input type="text" name="money"><br/>
用户姓名:<input type="text" name="list[0].uname"><br/>
用户年龄:<input type="text" name="list[0].age"><br/>
用户姓名:<input type="text" name="map['one'].uname"><br/>
用户年龄:<input type="text" name="map['one'].age"><br/>
<input type="submit" value="提交">
</form>