1.1 绑定的机制 1.表单提交的数据都是k=v格式的 username=Adair &password=123456 2.SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的 3.要求:提交表单的name和参数的名称是相同的。 代码如图所示: 请求参数绑定的处理类的代码如下:
package com.txw.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** *请求参数绑定的处理类 * @author Adair */ @Controller @RequestMapping(value = "/param") @SuppressWarnings("all") // 注解警告信息 public class ParamController { /** * 请求参数绑定入门 * @return */ @RequestMapping(path = "testParam") public String testParam(String userName,String passWord){ System.out.println("请求参数绑定..."); System.out.println("你的用户名:" + userName); System.out.println("你的密码:" + passWord); return "success"; } }使用TomCat运行如图所示: 通过浏览器访问http://localhost:8080/params.jsp如图所示: 点击请求参数会跳到如图所示的界面: 控制台打印结果如图所示: 1.2 请求参数绑定实体类型 1.基本数据类型和字符串类型。 2.实体类型(JavaBean)。 步骤如下: 1).在pom.xml导入如下的jar包:
<!--导入lombok的依赖jar包--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency>2).创建账户的实体类代码如下:
package com.txw.domain; import lombok.Data; import lombok.ToString; import java.io.Serializable; /** * 账户的实体类 * @author Adair */ @Data // 自动生成set和get方法 @ToString // 重写toString方法 @SuppressWarnings("all") // 注解警告信息 public class Account implements Serializable { private String userName; // 账户的用户名 private String passWord; // 账户的密码 private Double money; // 账户的金额 }3).在params.jsp文件的代码如下:
<%-- Created by IntelliJ IDEA. User: AdAir Date: 2020/7/1 0001 Time: 9:40 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>请求参数绑定</title> </head> <body> <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="submit" value="提交"/> </br> </form> </body> </html>4).创建请求参数绑定的处理类的代码如下:
package com.txw.controller; import com.txw.domain.Account; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** *请求参数绑定的处理类 * @author Adair */ @Controller @RequestMapping(value = "/param") @SuppressWarnings("all") // 注解警告信息 public class ParamController { /** * 请求参数绑定把数据封装到JavaBean的类中 * @return */ @RequestMapping(path = "saveAccount") public String saveAccount(Account account){ System.out.println("方法执行了..."); System.out.println(account); return "success"; } }5).使用Tomcat运行结果如图所示: 6).通过浏览器访问http://localhost:8080/params.jsp结果如图所示: 7).填写如图所示相应的信息,并点击提交。 8).控制台打印结果如图所示: 9).控制台打印结果如图所示: 引用类实现的方式如下: 1).创建用户的实体类的代码如下:
package com.txw.domain; import lombok.Data; import lombok.ToString; import java.io.Serializable; /** * 用户的实体类 * @author Adair */ @Data // 自动生成set和get方法 @ToString // 重写toString方法 @SuppressWarnings("all") // 注解警告信息 public class User implements Serializable { private String uname; // 用户的姓名 private Integer age; // 用户的年龄 }2).创建引用类的代码如下:
package com.txw.domain; import lombok.Data; import lombok.ToString; import java.io.Serializable; /** * 账户的实体类 * @author Adair */ @Data // 自动生成set和get方法 @ToString // 重写toString方法 @SuppressWarnings("all") // 注解警告信息 public class Account implements Serializable { private String userName; // 账户的用户名 private String passWord; // 账户的密码 private Double money; // 账户的金额 private User user; // 引用类 }3.在params.jsp的代码如下:
<%-- Created by IntelliJ IDEA. User: AdAir Date: 2020/7/1 0001 Time: 9:40 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>请求参数绑定</title> </head> <body> <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="提交"/> </br> </form> </body> </html>4).在处理器类的代码如下:
package com.txw.controller; import com.txw.domain.Account; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** *请求参数绑定的处理类 * @author Adair */ @Controller @RequestMapping(value = "/param") @SuppressWarnings("all") // 注解警告信息 public class ParamController { /** * 请求参数绑定把数据封装到JavaBean的类中 * @return */ @RequestMapping(path = "saveAccount") public String saveAccount(Account account){ System.out.println("方法执行了..."); System.out.println(account); return "success"; } }5).使用TomCat运行结果如图: 6).通过浏览器访问http://localhost:8080/params.jsp结果如图所示: 7).填写如图所示相应的信息,并点击提交。 8).控制台打印结果如图所示: 9).控制台打印结果如图所示: 3.集合数据类型(List、map集合等) 1).创建用户的实体类的实体类代码如下:
package com.txw.domain; import lombok.Data; import lombok.ToString; import java.io.Serializable; /** * 用户的实体类 * @author Adair */ @Data // 自动生成set和get方法 @ToString // 重写toString方法 @SuppressWarnings("all") // 注解警告信息 public class User implements Serializable { private String uname; // 用户的姓名 private Integer age; // 用户的年龄 }2).账户的实体类代码如下:
package com.txw.domain; import lombok.Data; import lombok.ToString; import java.io.Serializable; import java.util.List; import java.util.Map; /** * 账户的实体类 * @author Adair */ @Data // 自动生成set和get方法 @ToString // 重写toString方法 @SuppressWarnings("all") // 注解警告信息 public class Account implements Serializable { private String userName; // 账户的用户名 private String passWord; // 账户的密码 private Double money; // 账户的金额 private List<User> list; // list集合 private Map<String,User> map; // map集合 }3).在params.Jsp的代码如下:
<%-- Created by IntelliJ IDEA. User: AdAir Date: 2020/7/1 0001 Time: 9:40 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>请求参数绑定</title> </head> <body> <%-- 把数据封装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> </body> </html>4.创建请求参数绑定的处理类代码如下:
package com.txw.controller; import com.txw.domain.Account; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** *请求参数绑定的处理类 * @author Adair */ @Controller @RequestMapping(value = "/param") @SuppressWarnings("all") // 注解警告信息 public class ParamController { /** * 请求参数绑定把数据封装到JavaBean的类中 * @return */ @RequestMapping(path = "saveAccount") public String saveAccount(Account account){ System.out.println("方法执行了..."); System.out.println(account); return "success"; } }5).使用TomCat运行结果如图: 6).通过浏览器访问http://localhost:8080/params.jsp结果如图所示:7).填写如图所示相应的信息,并点击提交。 8).控制台打印结果如图所示::