SpringMVC路径匹配

SpringMVC路径匹配

SpringMVC支持Ant风格的路径

Ant是Apache下的一个构建(编译、测试、部署等)工具。即Ant风格源于Ant这个构建工具。

关于如何配置SpringMVC的各种配置文件和其中的注解使用可以参考

种类

1、?:表示任意的单个字符

controller

@RequestMapping("/a?a/testAnt")
public String testAnt(){
    return "success";
}

index.html

<a th:href="@{/a1a/testAnt}">测试RequestMapping可以匹配Ant风格的路径-->使用?</a>
2、*:表示任意的0个或多个字符

controller

@RequestMapping("/a*a/testAnt")
public String testAnt(){
    return "success";
}

index.html

<a th:href="@{/aasaa/testAnt}">测试RequestMapping可以匹配Ant风格的路径-->使用*</a>

注意:?和/代表其他含义,不能正常使用。

3、**:表示任意的一层或多层目录

controller

@RequestMapping("/**/testAnt")
public String testAnt(){
    return "success";
}

index.html

<a th:href="@{/aa/aa/testAnt}">测试RequestMapping可以匹配Ant风格的路径-->使用*</a>

注意:在使用时,只能使用//xxx的方式。

SpringMVC支持路径中的占位符

原始风格:

@RequestMapping("/deleteUser?id=1")

REST风格:

@RequestMapping("/deleteUser/1")

SpringMVC路径中的占位符常用RESTful风格,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据,再通过@PathVariable注解将占位符所表示的数据赋值给控制器方法的形参。

RESTful风格

官网:http://www.restfulapi.nl/

概述

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

特点

1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

SpringMVC请求路径的REST风格

下面的示例基于SpringMVC框架搭建,可将博客代码复制到自己的编辑器,进行如下的操作。

示例①

启动首页控制器

@RequestMapping("/")
public String firstPage(){
    return "index";
}

index.html

<a th:href="@{/testPlaceholder/1}">测试@ResultMapping支持路径中的占位符</a>

controller

/**
 * {}表示的就是展位符
 * @PathVariable注解只能够用来修饰参数
 * @param id 解析器需要的内容
 * @return 返回成功后
 */
@RequestMapping("/testPlaceholder/{id}")
public String testPlaceholder(@PathVariable("id") Integer id){
    System.out.println("id = " + id);
    return "success";
}
/*id = 1*/
示例②

index.html

<a th:href="@{/testPlaceholder/1/louie}">测试@ResultMapping支持路径中的占位符</a>

controller

@RequestMapping("/testPlaceholder/{id}/{username}")
public String testPlaceholder(@PathVariable("id") Integer id, @PathVariable("username") String username){
    System.out.println("id = " + id + "  username = " + username);
    return "success";
}
/*id = 1  username = louie*/

注意:
1、如果路径中有占位符,再请求地址中就必须要有代表占位符的那层路径,不然就会报错。
2、@PathVariable中的参数名称需要和占位符中的参数名称一致。

3、如果前端请求业务层的方式为query风格,如:

http://localhost:8080/testPlaceholder?id=1&username=louis

则在代码实现时,只需要名称对应,就会赋值。

    @RequestMapping("/testPlaceholder")
    public String testPlaceholder(Integer id, String username){
        System.out.println("id = " + id + "  username = " + username);
        return "success";
    }
    /*id = 1  username = louie*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值