第三章:請求參數的額綁定 1請求參數的綁定說明 1綁定機制 1.表單提交的數據都是k=v格式的 username=haha&password=123 username=hehe&passwd=123 MVC框架, sayHello(String username, String password) 2.springMVC的參數綁定過程是把表單提交的請求參數,作爲控制器中方法的參數進行綁定的 3.要求:提交表單的name和參數的名稱是相同的 2.支持的數據類型 1.基於數據類型和字符串類型 2.實體類型(JavaBean) 3.集合數據類型(List,map集合等) 2基本數據類型和字符串類型 1.提交表單的name和參數的名稱是相同的 2.區分大小寫 3實體類型(JavaBean) 1.提交表單的name和javaBean中的屬性名稱需要一直 2.如果一個JavaBean類中包含其他的引用類型,那麼表單的name屬性需要編寫成:對象.屬性 例如: 3.1.2 支持的數據類型 基本類型參數:基本類型和String類型 POJO類型參數:包括實體類,以及關聯的實體類 數據和集合類型參數:包括List結構和Map結構的集合(包括數組) SpringMVC綁定請求參數是自動實現的,但是要想使用,必須遵循使用要求。 3.13使用要求: 如果是基本類型或者String類型 要求我們的參數名稱必須和控制器中方法的形參名稱保持一致(嚴格區分大小寫) 如果是POJO類型,或者他的關聯對象: 要求表單中參數名稱和POJO類的屬性名稱保持一致,並且控制器方法的參數類型是POJO類型。 如果是集合類型,有兩種方法: 實戰 webapp->New->JSP/JSPX->params(新建文件) cn.itcast.controller->New->ParamController.java 執行,訪問 http://localhost:8080/springmvc_day01_01_start/ http://localhost:8080/springmvc_day01_01_start/param.jsp 回車->點擊參數綁定,跳轉到下面網址 http://localhost:8080/springmvc_day01_01_start/param/testParam 如果下列代碼 <a href="param/testParam?username=hehe">請求參數綁定</a> 會自動把參數值賦值給下面方法 public String testParam(String username){ 全部代碼如下 param.jsp內容 <%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/3/22 Time: 13:24 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--請求參數綁定--%> <a href="param/testParam?username=hehe&password=123">請求參數綁定</a> </body> </html> ParamController.java代碼如下 package cn.itcast.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /* * 請求參數綁定 * */ @Controller //把類交給容器關 @RequestMapping("/param") public class ParamController { /* * 請求參數綁定入門 * */ @RequestMapping("/testParam") public String testParam(String username,String password){ System.out.println("執行了。。。"); System.out.println("用戶名: "+username); System.out.println("密碼: "+password); return "success"; } } P11把數據封裝到Java bean的對象中 java->new->郵件包->cn.itcast.domain->創建類Account 名字必須對應起來 右鍵->Generate->toString 方法和GET/SET方法 public class Account implements Serializable { private String username; private String password; private Double money; } param.jsp <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" name="提交"/> </form> ParamController.java中 /* *請求參數綁定吧數據封裝到JavaBean的類中 * */ @RequestMapping("/saveAccount") public String saveAccount(Account account){ System.out.println("執行了。。。"); return "success"; } 運行,訪問頁面如下 http://localhost:8080/springmvc_day01_01_start/param.jsp P11 domain->User.java類(生成GET/SET 和toString) package cn.itcast.domain; import java.io.Serializable; public class User implements Serializable { private String uname; private Integer age; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } Account中,清除生成的GET/SET 和toString之後,重新生成 <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" name="提交"/> </form> ParamController.java /* *請求參數綁定吧數據封裝到JavaBean的類中 * */ @RequestMapping("/saveAccount") public String saveAccount(Account account){ System.out.println("執行了。。。"); System.out.println(account); return "success"; }
4Spring MVC 請求參數綁定
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.