springmvc 支持ant風格的路徑表達式,我們先了解一下ant風格是什么個東東?
ant匹配url有三種
? 匹配任何單字符
* 匹配0或者任意數量的字符
** 匹配0或者更多的目錄
1.?只匹配一個字符,比如說/springmvc/?abc/index.jsp 其中?abc 的?是可以給任何一個字符代替。
稍作改動
/springmvc/1abc/index.jsp
/springmvc/eabc/index.jsp
/springmvc/4abc/index.jsp
以上的?發生了改變但是不會影響到請求index.jsp,這樣是能正常訪問到的。
在稍作改動
/springmvc/12abc/index.jsp
/springmvc/leabc/index.jsp
以上的?發生了改變但是它不是一個字符所以最終它是請求不到index.jsp的。
2.*匹配0或者任意數量的字符,以上類推使用方法差不多就不在這里多講了。
3.** 匹配0或者更多的目錄,比如說/springmvc/**/index.jsp 其中的** 可以是任意字符或者任意訪問層數,都能正確的訪問到index.jsp。
稍作改動
/springmvc/abc/index.jsp
/springmvc/index.jsp
/springmvc/abc/cba/index.jsp
以上的改變但是不會影響到請求index.jsp,這樣是能正常訪問到的。
了解完了,下面我們在springmvc上在做一次示范。
1.jar包(所需jar包在第一節中有所表述出來)
2.web.xml配置(主要配置一下 springmvc 的servlert 就可以了 org.springframework.web.servlet.DispatcherServlet)
3.springmvc.xml配置(主要配置一下 注解掃描,和InternalResourceViewResolver解析器配置一下前綴和后綴)
4.編寫Controller
package com.home.springmvc.ant; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * 此類是:Springmvc Ant 風格匹配url * ? 匹配一個任意的字符 * * 匹配任意字符 * ** 匹配多層任意字符 * @author hpc * @2017年2月16日下午10:08:46 */ @Controller public class SpringMvcAnt { // ? 匹配一個任意的字符 @RequestMapping("/springmvc/?/antUrl1") public String antUrl3() { System.out.println("? 匹配一個任意的字符"); return "success"; } //* 匹配任意字符 @RequestMapping("/springmvc/*/antUrl2") public String antUrl() { System.out.println("* 匹配任意字符"); return "success"; } //** 匹配多層任意字符 @RequestMapping("/springmvc/**/antUrl3") public String antUrl2() { System.out.println("** 匹配多層任意字符"); return "success"; } }
直接結果展示
1. ?
點擊請求 http://localhost/springmvc_1(hello%20world)/springmvc/antUrl3
請求成功,且進入了handler方法,打印了內容
將地址改成http://localhost/springmvc_1(hello%20world)/springmvc/b/antUrl1,也請求成功了,且打印了。
將地址改成http://localhost/springmvc_1(hello%20world)/springmvc/b2/antUrl1,是兩個字符所以請求錯誤,沒有打印
2. *
點擊請求
請求成功http://localhost/springmvc_1(hello%20world)/springmvc/1*/antUrl2,匹配任意字符所以請求成功,且打印內容。
http://localhost/springmvc_1(hello%20world)/springmvc/dafdsafsa/antUrl2,請求成功,且打印內容。
http://localhost/springmvc_1(hello%20world)/springmvc/dafdsafsa/asdfaf/antUrl2,請求失敗,該映射只能是任意符,不能是多層。
3. ** 依上類推,不打解釋了。
有不對之處希望大家多多指教。謝謝。