javascript
SpringMVC-狂神笔记
參考鏈接:狂神說SpringMVC筆記 - 時移之人 - 博客園 (cnblogs.com)
第一節:
MVC:前端+路由+后端實現
prefix:前綴
suffix:后綴
-
@Controller是為了讓Spring IOC容器初始化時自動掃描到;
-
@RequestMapping是為了映射請求路徑,這里因為類與方法上都有映射所以訪問時應該是/HelloController/hello;
實現步驟其實非常的簡單:
新建一個web項目
導入相關jar包
編寫web.xml , 注冊DispatcherServlet
編寫springmvc配置文件
接下來就是去創建對應的控制類 , controller
最后完善前端視圖和controller之間的對應(方法中聲明Model類型的參數是為了把Action中的數據帶到視圖中)
測試運行調試.
注:DispatcherServlet 是 SpringMVC統一的入口,所有的請求都通過它。DispatcherServlet 是前端控制器,配置在web.xml文件中,Servlet依自已定義的具體規則攔截匹配的請求,分發到目標Controller來處理。
使用springMVC必須配置的三大件(注解或者xml):
處理器映射器、處理器適配器、視圖解析器
ModelAndView:模型視圖類(方法返回的結果是視圖的名稱hello,加上配置文件(視圖解析器)中的前后綴變成WEB-INF/jsp/hello.jsp。)
//ModelAndView 模型和視圖ModelAndView mv = new ModelAndView();//封裝對象,放在ModelAndView中。Modelmv.addObject("msg","HelloSpringMVC!");//封裝要跳轉的視圖,放在ModelAndView中mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jspreturn mv;第三節:
- POST、DELETE、PUT、GET:添加、 刪除、修改、查詢
RESTful風格:
- 在Spring MVC中可以使用 ?@PathVariable 注解,讓方法參數的值對應綁定到一個URI模板變量上。
使用method屬性指定請求類型
用于約束請求的類型,可以收窄請求范圍。指定請求謂詞的類型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等
//映射訪問路徑,必須是POST請求 @RequestMapping(value?=?"/hello",method?=?{RequestMethod.POST}) public?String?index2(Model?model){model.addAttribute("msg",?"hello!");return?"test"; }所有的地址欄請求默認都會是 HTTP GET 類型的。
第四節:
結果跳轉方式
- ModelAndView:頁面 : {視圖解析器前綴} + viewName +{視圖解析器后綴}
- ServletAPI:通過HttpServletResponse進行輸出、重定向、轉發
- 通過SpringMVC來實現轉發和重定向 - 無需視圖解析器;
數據提交:
@RequestMapping("/hello") public String hello(@RequestParam("username") String name){//提交數據 : http://localhost:8080/hello?username=kuangshen public String hello(String name){//提交數據 : http://localhost:8080/hello?name=kuangshen//參數是實體類 public class User {private int id;private String name;private int age;//構造//get/set//tostring() }@RequestMapping("/user")//提交數據 : http://localhost:8080/mvc04/user?name=kuangshen&id=1&age=15 public String user(User user){System.out.println(user);return "hello"; } //說明:如果使用對象的話,前端傳遞的參數名和對象名必須一致,否則就是null。數據回顯:
ModelAndView、ModelMap、Model都可以
總結
以上是生活随笔為你收集整理的SpringMVC-狂神笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何写 peer review
- 下一篇: JS 自定义实现数字滚动处理