【SpringMVC】二、RequestMapping注解

这篇具有很好参考价值的文章主要介绍了【SpringMVC】二、RequestMapping注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RequestMapping

RequestMapping的功能

ReqeustMapping实现的是将请求与处理请求的控制器方法进行关联,建立映射,实现当请求传进来的时候,调用对应方法的情况。

RequestMapping的位置

注意RequestMapping的value值不可重复,即每个请求只能映射一个Controller类的方法。

若@RequestMapping定义在类上,表示映射请求的初始信息

@RequestMapping定义在方法上,表示映射请求的具体信息

例:若类上没有@RequestMapping标识,则前端的链接写法:href=“@{/方法上注解value值}”,若类上有,则:href=“@{/类上注解值/方法上注解值}”

@Controller
@RequestMapping("/test")
public class RequestMappingController {
    
	//此时请求映射所映射的请求的请求路径为:/test/testRequestMapping
    @RequestMapping("/testRequestMapping")
    public String testRequestMapping(){
        return "success";
    }
}

RequestMapping的value属性

RequestMapping的value属性必须设置,当value值为字符串时,其会匹配对应的地址,当value值为数组时,每一个数组内的地址都会映射到相同的页面

    <a th:href="@{/testRequestMapping}">测试value属性值</a><br>
    <a th:href="@{/test}">测试value属性值part2</a>
   //两个地址都会映射到同一个页面
	@RequestMapping(value = {"/testRequestMapping", "/test"})
    public String toSuccess() {
        return "success";
    }

RequestMapping的Method属性

Method属性设置的是请求的请求方式(get或post)来匹配请求映射

get的请求参数会被拼接在地址栏,post通过请求体来进行。

get请求速度更快、安全性更差、可传递请求内容较小,post恰好相反,get无法传文件。

浏览器的请求方式与value值匹配的地址值可以匹配时,浏览器可以转入对应网页,若value值匹配但请求方式不匹配会导致405,value值不匹配会导致404.

若不设置method属性,则不论是get还是post请求方式,都请求得到。

.java中写法:

    //注意RequestMethod是一个枚举类,其中定义的是各种请求方式。
	@RequestMapping(value = {"/testRequestMapping", "/test"}, method = {RequestMethod.GET})
    public String toSuccess() {
        return "success";
    }
<!-- form表单,使用post请求方式 -->
	<form th:action="@{/test}" method="post">
        <input type="submit" value="测试method注解" />
    </form>

例如这两个代码就不会生成正常页面。

另外:

也可以使用对应的请求方式的注解直接进行请求方式的定义,就不需要拓展method属性了,例如:

    //get请求方式的获取方式
	@GetMapping(value = "/testGet")
    public String testGet() {
        return "testGet";
    }

同样的注解还有:

@PostMapping、@PutMapping、@DeleteMapping.

但是要注意:put、delete请求form表单是无法发送的。

RequestMapping的params属性

params属性的定义分为以下几种情况:

1. 
// 传入的参数中必须携带username参数
params = {"username"}

2. 
//传入的参数中不能有username参数
params = {"!username"}

3. 
//传入的参数中必须有username参数且username参数的值为admin
params = {"username=admin"}
    
4.
//传入的参数中必须有username且username的参数不能为admin
params = {"username!=admin"}

其中前端的标签:

<!-- thymeleaf传入多个参数的方式 -->
<!-- 或者直接在后面加?也行 -->
<a th:href="@{/testParams(username='admin', password=123456)}">这个测试Params参数</a>

RequestMapping的Header属性

与params类似,params限制的是传入的参数,Header限制的是请求头中的信息,请求头中都是设置信息,可以做很多很有用的限制。

//注意这里{}内的内容不能带空格    
@RequestMapping(value = "/testParams", params = {"username"}, headers = {"Host=localhost:8080"})

RequestMapping的ant风格编程(模糊查询)

?代表任意的单个字符

@RequestMapping(value = "/a?a/testAnt")

例如下面就是可以被匹配的(注意 “?与 /” 是不能被模糊匹配的,因为其本身就是特殊符号):

<a th:href="@{/ana/testAnt}" >测试ant模糊匹配</a>

“*” 代表0个或多个字符,(?和 / 是不能匹配的)

"**"代表多个字符,同时可以使用 / 但要注意,如果使用**就只能在两个斜线之间只写**如下:

@RequestMapping (value = "/**/testAnt")

这样的写法可以匹配多层目录,例如如下这样就可以被匹配:

http://localhost:8080/springMVC/an//a/v//b/s/d//s//a/testAnt

SpringMVC占位符(restful风格)

原始方式:/deleteUser?id=1

restful方式:/deleteUser/1

前端中的编写方式:

    <a th:href="@{/testPath/1}">测试使用占位符</a>

后端中的编写方式:

    //在value属性中接收前端传进来的id的值
    //在通过形参前的注解@PathVariable来修饰形参以将@RequestMapping中获取到的参数传进来
    @RequestMapping (value = "/testPath/{id}")
    public String testPath (@PathVariable("id")Integer id) {
        System.out.println("id = " + id);
        return "success";
    }

注意这种写法,请求地址中必须传参,如果不传参会找不到资源文章来源地址https://www.toymoban.com/news/detail-442609.html

到了这里,关于【SpringMVC】二、RequestMapping注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC中@RequestMapping注解的详细说明

    @RequestMapping 是Spring MVC中一个用于映射HTTP请求和控制器方法之间关系的注解。它用于定义控制器方法如何响应特定的HTTP请求,包括GET、POST、PUT、DELETE等。以下是 @RequestMapping 注解的详细说明: 基本用法: @RequestMapping 用于注解一个控制器方法,指定该方法应该处理的请求路径

    2024年02月07日
    浏览(42)
  • springMVC-@RequestMapping

    @RequestMapping注解可以指定控制器/处理器的某个方法的请求的url, 示例 (结合springMVC基本原理理解) @RequestMapping不仅可以修饰方法, 还可以 修饰类 当同时修饰类和方法时,jsp请求的url 就是/类请求值/方法请求值 @RequestMapping还可以指定请求的方式(post/get/put/delete..) 相应地, 

    2024年02月04日
    浏览(44)
  • 【Java EE】@RequestMapping注解

    在Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤ 我们先来看看代码怎么写 创建⼀个 TalkController 类,实现⽤⼾通过浏览器和程序的交互,具体实现代码如下: 这时候我们使用浏览器访问 http://127.0.0.1:8080/hi 就可访问 @RequestMapping 是Spring Web M

    2024年04月09日
    浏览(43)
  • Spring MVC-@RequestMapping注解详解

    目录 1、@RequestMapping注解的作用 2、@RequestMapping注解的位置 3、value属性 (1)基础用法 (3)路径中的占位符(重点) 4、method属性 5、params属性(了解) 6、headers属性(了解) @RequestMapping注解的作用,就是 将请求和处理请求的控制器方法关联起来 ,建立映射关系。 SpringMVC接

    2023年04月24日
    浏览(46)
  • Spring MVC 的RequestMapping注解

    作用:用于建立请求URL和处理请求方法之间的对应关系。 出现位置: 类上: 请求 URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。它出现的目的是为了使我们的 URL 可以按照模块化管理,例如: 账户模块: /account /add /account /update /account

    2024年02月02日
    浏览(40)
  • Spring MVC学习之——RequestMapping注解

    用于建立请求URL和处理请求方法之间的对应关系。 value:指定请求的实际地址,可以是一个字符串或者一个字符串列表。 value可以不写,直接在括号中写,默认就是value值 @RequestMapping(value=“/hello”) public String hello(){ return…} method:指定请求的方式,可以是GET、POST、PUT、DELE

    2024年01月18日
    浏览(56)
  • 学习注解的使用模拟RequestMapping解析path

    注解在后端开发过程中提供了许多的便利,提高了代码简洁性和可读性,在应用程序中占据越来越重要的作用,很有学习的必要,接下来会通过代码来完成对类、方法、属性注解的解析。 回到顶部 代理类会使我们获取注解失败,要做特殊处理。

    2024年02月16日
    浏览(48)
  • Spring MVC @Controller和@RequestMapping注解

    @Controller 注解可以将一个普通的 Java 类标识成控制器(Controller)类,示例代码如下。 Spring MVC 是通过组件扫描机制查找应用中的控制器类的,为了保证控制器能够被 Spring MVC 扫描到,我们还需要在 Spring MVC 的配置文件中使用  context:component-scan/  标签,指定控制器类的基本包

    2024年02月09日
    浏览(50)
  • @RequestMapping和@FeginClient注解不能同时使用的问题

    在新版本SpringCloud中,增加了契约验证,当一个类上同时使用@RequestMapping 和 @FeignClient 注解时,会抛出此异常信息:java.lang.IllegalArgumentException: @RequestMapping annotation not allowed on @FeignClient interfaces 将类上的@RequestMapping注解删掉,将路径更改到每个方法的路径上即可,然后使用@

    2024年02月03日
    浏览(39)
  • 【注解】@RestController、@GetMapping、@PostMapping、@RequestMapping等RESTful风格的Web服务的注解

    @RestController 是 Spring 4.0 引入的一个注解,它是 @Controller 和 @ResponseBody 的组合。 用于标识一个类,表示这个类是一个控制器,并且其中的方法会返回 JSON 格式的数据。通常用于构建 RESTful API。 @RequestMapping 用于映射 HTTP 请求到控制器的处理方法。 可以用在类级别和方法级别。

    2024年01月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包