SpringMVC從入門到 精通第七章
過年期間太忙了沒來得及更新SpringMVC框架的知識點。
上一章主要講述了@RequestParam這個註解,不知道大家有木有忘掉,這個註解的主要作用就是把請求參數映射到目標方法的形參上面。
其實這種做法也不好,試想一下對於表單參數就不是一個兩個的了。這時候利用這個註解成本就消耗的特別大的了。
簡單說一下場景:對於一個註冊頁面有很多信息譬如:用戶名、密碼、確認密碼、郵箱、手機、興趣等等
這時候就會想能不能將這些個參數包裝在一個對象中(POJO),用這個POJO來做目標方法的形參上面。可以說的是springmvc是支持將pojo作為目標參數的。當然也是要遵循一些規則的,就是表單的name屬性值要和POJO的屬性值要一致。當然了,這樣又會有一個新的疑問支不支持級聯屬性答案是支持的。
第一個知識點:使用POJO作為目標方法參數
public class Address{ private String city; } public class Person{ private String name; ..... private Addrss address;//這個就是級聯屬性 }
示例代碼:
POJO:
public class Address { private String city; private String province; } public class User { private Integer id; private String username; private String password; private Address address; }
JSP:
用戶:密碼: 編號:
省份:城市:
Java代碼:
/** * SpringMVC會按請求參數名和POJO屬性名進行自動匹配, * 自動為該對象填充屬性值。支持級聯屬性 * * @Title: testUsePOJOAsParam * @Description: TODO (使用pojo作為作為參數傳遞給目標方法,支持聯級屬性) * @Author: Hanson.Q * @Create Date: 2016年2月16日 下午1:27:27 * @History: 2016年2月16日 下午1:27:27 Hanson Created. * @param user * @return * */ @RequestMapping("/testUsePOJOAsParam") public String testUsePOJOAsParam(User user) { System.out.println("Use POJO as paramters : " + user); return "success"; }
知識點二:使用servlet原生的API作為參數
springmvc支持使用原生的servletAPI作為目標方法的參數
jsp:
使 用原生的API作為作為目標方法的參數
JAVA代碼:
/** * 可以使用Servlet 原生的API作為目標方法的參數 * 具體支持以下類型: HttpServletRequest、 * HttpServletResponse、 HttpSession、 java.security.Principal、 Locale、 * InputStream、 OutputStream、 Reader、 Writer * * @Title: testUseServletAPIAsParam * @Description: TODO (測試使用原生servletAPI作為目標參數) * @Author: Hanson * @Create Date: 2016年2月16日 下午1:34:36 * @History: 2016年2月16日 下午1:34:36 Hanson Created. * * @param request * @param response * @param out * @return * @throws IOException * */ @RequestMapping("/testUseServletAPIAsParam") public String testUseServletAPIAsParam(HttpServletRequest request, HttpServletResponse response, Writer out) throws IOException { System.out.println("Test servlet api ," + request + "," + response); response.setContentType("text/html; charset=utf-8"); out.write("hello SpringMVC"); return "success"; }
運行結果頁面顯示:hello SpringMVC 。
這一章就講這兩個知識點。下一章我想將springmvc+spring+mybatis整合了。
※Java程序員面試失敗的 5大原因
※Java正則表達式的 語法與示例
※JSP頁面的五種 跳轉方法
TAG:java學習吧 |
※SpringMVC如何與Servlet3整合在一起
※Spring與SpringMVC的容器關係分析
※SpringMVC(輕量級Web框架)
※SpringMVC流程架構
※SpringMVC接收Form表單中的數組數據
※Spring SpringMVC配置Druid數據源(資料庫連接池)
※搭建SpringMVC(非web.xml文件方式)
※Spring4+hibernate+SpringMvc整合
※SpringMVC + security模塊 框架整合詳解
※SpringMVC,Spring,Hibernate框架自動生成器
※淺談SpringMVC和MyBatis在應用方面的優勢
※SpringMVC筆記(3):數據綁定
※SpringMVC常用配置3
※netty整合springMVC,實現高效的HTTP服務請求
※SpringMVC工程的web.xml以及其他配置文件
※SpringMVC國際化與文件上傳
※SpringMVC 開發 — 使用 Swagger 搭建介面請求頁面
※探索SpringMVC4中靜態資源的訪問鏈路
※「SpringMVC」上傳並顯示圖片
※自己手寫一個 SpringMVC 框架