springmvc_2(ant風格路徑表達式)


 

  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. ** 依上類推,不打解釋了。

 

 

 

 

 

 

  有不對之處希望大家多多指教。謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM