日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring框架深入(四)--SpringMVC配置详解

發布時間:2025/4/14 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring框架深入(四)--SpringMVC配置详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、SpringMVC web模型

  

?

二、@RequestMapping參數說明

  1、value:定義處理方法的請求的URL地址;

  2、method:定義處理的方法的http method類型,如GET/POST方法;不指定的時候,可以處理任何方式的http請求;

  3、params:定義請求的URL中必須包含的參數,用于窄化請求;

  4、headers:定義請求的request headers 中必須包含的參數,與params類似;

  5、consums:指定處理請求的提交類型(content-type),application/json,用于窄化請求;

  6、produces:指定返回的內容類型,僅當request請求頭中的類型包含指定類型才返回;

  params的使用

  用于前臺向后臺的參數的傳遞;通過判斷傳遞的參數中有或者沒有“target”,來判斷是否進入該方法;

//請求中有target參數時,才能進入 @RequestMapping(value="/find1.action",params="target") public String find1(String target) {System.out.println("find1");System.out.println(target);return "result"; }//請求中不能有target參數 @RequestMapping(value="/find1.action",params="!target") public String find2() {System.out.println("find2");return "result"; }//請求中target值等于test時,進入find3 @RequestMapping(value="/find1.action",params="target=test") public String find3(String target) {System.out.println("find3");System.out.println(target);return "result"; }

?

  value配置詳解

  value支持通配符的使用;

   ?:代表匹配文件名中的一個字符;

   *:代表匹配文件名中的任意字符;

   **:代表匹配多層路徑;

  示例:

  有這樣幾個跳轉鏈接,

<a href="find.action">find.action</a><br> <a href="find/id.action">find/id.action</a><br> <a href="find/ida.action">find/ida.action</a><br> <a href="find/idaa.action">find/idaa.action</a><br> <a href="find/id/abc.action">find/id/abc.action</a><br> <a href="find/id/abc/abc.action">find/id/abc/abc.action</a><br>

  分別對應到的controller方法:

@RequestMapping("/find/id?.action") public String match1() {System.out.println("match1:"+"/find/id?.action");return "result"; } @RequestMapping("/find/id*.action") public String match2() {
   System.out.println("match2:"+"/find/id*.action");return "result"; } @RequestMapping("/find/id/*.action") public String match3() {System.out.println("match3:"+"/find/id/*.action");return "result"; } @RequestMapping("/find/id/**/abc.action") public String match4() {System.out.println("match4:"+"/find/id/**/abc.action");return "result"; } @RequestMapping("/find.action") public String match5() {System.out.println("match5:"+"/find.action");return "result"; }

  運行結果:

  

  或關系

  一個value的配置可以支持兩個URL路徑的映射;通過這兩個路徑,可以同時訪問到這個方法;

@RequestMapping(value= {"/get.action","/fetch.action"}) public String get() {System.out.println("get");return "result"; }

  正則表達式

  頁面鏈接:

<a href="get/2-b.action">reg</a>

  controller代碼:

@RequestMapping("get/{\\d+}-{[a-z]}") public String regularExpression() {System.out.println("regularExpression");return "result"; }

  通過正則表達式還可以實現路徑參數的獲取;

@RequestMapping("get/{number:\\d+}-{text:[a-z]}") public String regularExpression2(@PathVariable String number,@PathVariable String text) {System.out.println("regularExpression");System.out.println("number:"+number);System.out.println("text:"+text);return "result"; }

  先在路徑中接收正則表達式的值,再通過@PathVariable獲取值;

  運行結果:

  

?

  RESTFUL支持

  1、restful:輕量級的SOA(面向服務)的實現,將一個個的請求做出的相應以資源的形式返回;

  2、請求資源:

   以前:userServlet?type=”add”;

   Restful:URL風格:將參數通過URL傳遞到服務器端;

  3、SpringMVC支持restful風格,可以通過URL進行參數的傳遞;

  示例:

<a href="user/add.action">add</a> @RequestMapping(value="/user/{type}.action") public String userMgr(@PathVariable("type") String initParam) {System.out.println("userMgr:"+initParam);return "result"; }

  路徑中的值add,就會作為參數被type接收;  

  先使用@PathVariable(“type”)中的type來接收通過URL路徑傳遞的type值,再給InitParam初始化參數;

?

三、基于注解的參數綁定

  1、@RequestParam:設置綁定的參數名和傳入的參數名的值;

<a href="param.action?param=paramTest">測試</a><br> @RequestMapping("/param.action") public String param(@RequestParam("param")String value) {System.out.println("param:"+value);return "result"; }

  2、@ PathVariable

?

四、數據回顯深入理解

  數據回顯的方法:

   (1)、原生servlet的方式:

   (2)、ModelAndView

   (3)、Model/ModelMap:默認在request作用域實現數據傳遞

@RequestMapping("/back.action") public String back(Model model) {String msg="this is msg;";model.addAttribute("msg", msg);//默認的作用域范圍是requestreturn "result"; }

    在前臺頁面可直接通過EL表達式獲取值;

   (4)、ModeAtrribute

    可以用于方法的返回值:用來在處理@RequestMapping之前,為請求綁定需要從后臺查詢到的model;

    將數據綁定到request作用域,每個請求都可以從作用域中拿出數據;

    當前@RequestMapping的每一個返回都可以攜帶ModelAttribute中的屬性和屬性值;

@ModelAttribute("list") public List<User> findAllUser(){User user1=new User(1,"admin","admin");User user2=new User(2,"test","test"); List<User> list=new ArrayList<User>();list.add(user1);list.add(user2);return list; }

    在前臺頁面通過request.getAttribute獲取值;

   (5)、@SessionAttributes:用于類和接口

    將與ModelAttribute中的key相同的屬性值也放到session作用域中;

@Controller @SessionAttributes(value= {"list","msg"}) public class ParamController {@RequestMapping("/param.action")public String param(@RequestParam("param")String value) {System.out.println("param:"+value);return "result";}@ModelAttribute("list")public List<User> findAllUser(){User user1=new User(1,"admin","admin");User user2=new User(2,"test","test");List<User> list=new ArrayList<User>();list.add(user1);list.add(user2);return list;} }

    在前臺頁面通過session可以同時獲取到list和msg;

?

PS:因作者能力有限,如有誤還請諒解;

轉載于:https://www.cnblogs.com/WHL5/p/9088009.html

總結

以上是生活随笔為你收集整理的Spring框架深入(四)--SpringMVC配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。