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

 

 

 

 

 

 

  有不对之处希望大家多多指教。谢谢。

转载于:https://www.cnblogs.com/mohehpc/p/6476149.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值