首页 > 其他分享 >SpringMVC(四):RequestMapping

SpringMVC(四):RequestMapping

时间:2022-10-17 18:23:24浏览次数:92  
标签:RequestMapping SpringMVC value default springframework 注解 String

现在我们来学习一下RequestMapping注解。

RequestMapping注解用来将url映射到一个控制类(Controller类)或一个特定处理的方法上。

一、RequestMapping使用的位置

1.方法上

直接上实例:

package com.jms.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MainController {

    @RequestMapping("/t1")
    public String test1(Model model) {
        model.addAttribute("message", "test1");
        return "main";
    }
}

 

 此时直接访问类上注解的地址即可发起请求。

2.类上

使用在类上时不能仅仅使用在类上,还需要同时使用在方法上。

使用在类上相当于给使用RequestMapping注解的方法添加了一个父关系,也就说在实际请求时需要将类注解的url和方法注解的地址拼接起来,看下面的例子:

package com.jms.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/m1")
public class MainController {

    @RequestMapping("/t1")
    public String test1(Model model) {
        model.addAttribute("message", "test1");
        return "main";
    }
}

此时在类和方法上都有注解,我们访问一下:

 

 此时我们需要访问类注解和方法注解拼接起来的路径才能够发起请求。

一般来说直接在方法上写死即可,无需在类上进行RequestMapping注解的使用。

二、RequestMapping注解的属性

我们来看一下RequestMapping注解的源码:

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String name() default "";
    @AliasFor("path")
    String[] value() default {};
    @AliasFor("value")
    String[] path() default {};
    RequestMethod[] method() default {}; 
    String[] params() default {};
    String[] headers() default {};
    String[] consumes() default {};
    String[] produces() default {};

}
    

1.name属性:这个属性相当于方法的注释,使方法更容易理解。

2.value属性:指定请求的实际地址,指定的地址可以是URI 模板模式(Template Pattern),这里用的是数组,说明可以有多个值;value属性是RequestMapping注解的默认属性,我们所写的@RequestMapping("/t1")实际上就是@RequestMapping(value = "/t1")。

3.path属性:有源码中可见,path与value互为别名,也就是说它和value属性的作用是相同的。

4.method属性:指定请求的类型,我们看一下RequestMethod的源码如下:

 

 由此我们衍生出来了一些新的注解,如

    @GetMapping

    @PostMapping

    @PutMapping

    @PatchMapping

    @DeleteMapping

@GetMapping("/t1")就等价于@RequestMapping(value="/t1", method=RequestMethod.GET)。

 

(本文仅作个人学习记录用,如有纰漏敬请指正)

标签:RequestMapping,SpringMVC,value,default,springframework,注解,String
From: https://www.cnblogs.com/jmsstudy/p/16799273.html

相关文章

  • SpringMVC(一):SpringMVC的执行流程
    先看一张图:从这张图我们可以很直观地看出来,SpringMVC的执行流程大致分为以下几步:1.用户发起的请求被前端控制器DispatcherServlet接收;2.DispatcherServlet调用处理映射......
  • springMVC的使用
    springMVC的使用2.1新建一个maven项目2.2导入jar包<!--Spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId......
  • SpringMVC执行流程
    SpringMVC的组件DispatcherServlet:前端控制器,接受所有请求,调用其他组件。HandlerMapping:处理器映射器,根据配置找到方法的执行链。HandlerAdapter:处理器适配器,根据方法类型找......
  • SpringMVC项目访问时不进Controller层也不报错
    真的真的真的被自己蠢到了1、出现的问题闲来无事准备复习一下SpringMVC的内容,于是就导入一个SpringMVC项目,但是输入访问路径时报了404,控制台也无任何报错信息。2、尝......
  • springMVC 总结 以及ssm整合
    SpringMVC概述:SpringMVC是一种基于Java实现MVC模型的轻量级Web框架springMVC涉及到的坐标导入servlet坐标 这里一定要设置scope标签否则将会报错<dependency>......
  • springMvc 整合ssm 和全局异常处理器类编写 和拦截器编写
    ssm整合步骤  1创建Maven工程项目添加依赖   2在config包中编写servlet配置类继承AbstractAnnotationConfigDispatcherServletInitializer并重写类中3......
  • SpringMVC学习笔记
    13120171114......
  • SpringMVC执行流程
    ​ /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里......
  • SpringMVC中实现Bean Validation(JSR 303 JSR 349 JSR 380)
    JSR303是针对bean数据校验提出的一个规范。使用注解方式实现数据校验。每个注解的用法这里就不多介绍,请移步​​JSR303-BeanValidation介绍及最佳实践​​笔者上面提......
  • 一、springmvc之helloworld
    一、jar包下载:查找springframework的下载地址: ​​github spring-framework​​​上可以找到对应的 AccesstoBinaries跳转到​​wiki ​​​ ,wiki中给出了Downlo......