千家信息网

RequestMapping注解有什么作用

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇"RequestMapping注解有什么作用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2024年11月23日RequestMapping注解有什么作用

这篇"RequestMapping注解有什么作用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"RequestMapping注解有什么作用"文章吧。

@RequestMapping注解的作用

@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。并且一个处理请求地址映射的注解,可用在类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

以下为@RequestMapping的源码

package org.springframework.web.bind.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import org.springframework.core.annotation.AliasFor;@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @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 {};}

方法上:

请求 URL 的第二级访问目录。

属性:

  • value:用于指定请求的 URL。它和 path 属性的作用是一样的。

  • method:用于指定请求的方式。

  • params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和 配置的一模一样。

例如:

  • params = {"accountName"},表示请求参数必须有

  • accountNameparams = {"moeny!100"},表示请求参数中 money 不能是 100。

  • headers:用于指定限制请求消息头的条件。

注意:

以上四个属性只要出现 2 个或以上时,他们的关系是与的关系。

作用:

用于建立请求URL和处理请求方法之间的对应关系。

出现位置:

请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。 它出现的目的是为了使我们的 URL 可以按照模块化管理:

例如:

账户模块:

  • /account/add

  • /account/update

  • /account/delete …

订单模块:

  • /order/add

  • /order/update

  • /order/delete

案例

普通案例: 将@RequestMapping注解分别注释在类和方法上,所以在前端写链接的时候要写完全的路径(类上标签的路径+方法标签上的路劲)

控制器的代码块:

/*** RequestMapping 注解出现的位置* @author * @Company http://www.ithiema.com* @Version 1.0*/@Controller("accountController")@RequestMapping("/account")public class AccountController {        @RequestMapping("/findAccount")        public String findAccount() {                System.out.println("查询了账户。。。。");                return "success";        }}

JSP中的代码块

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>                requestmapping 的使用                                查询账户                        查询账户

案例: 用于指定请求的方式,如果要求是get请求,那么在前端写请求方式时的method=get,反之如果要求是post请求,前端的,medthod=post

控制器代码块:

/*** 保存账户* @return*/@RequestMapping(value="/saveAccount",method=RequestMethod.POST)public String saveAccount() {        System.out.println("保存了账户");        return "success";}

jsp代码块

保存账户,get 请求

注意: 当使用 get 请求时,提示错误信息是 405,信息是方法不支持 get 方式请求

params 属性的示例: 用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和 配置的一模一样。 写了这个属性之后就一定要在前端发送请求的时候,前端就要有这个属性,否则就无法访问。控制器代码块:

/*** 删除账户* @return*/@RequestMapping(value="/removeAccount",params= {"accountName","money>100"})public String removeAccount() {        System.out.println("删除了账户");        return "success";}

jsp代码块:

删除账户,金额 100删除账户,金额 150

注意:

当我们点击第一个超链接时,可以访问成功。

当我们点击第二个超链接时,无法访问。

如下图:

支持REST风格的参数: 代表性状态传输 (REST) 是一种用于分布式超媒体系统(如万维网)的体系结构样式。 (以下测试代码与@PathVariable联用)

控制器代码块:

    @RequestMapping(value = "/testRequestMapping/{Id}")    public String testRequestMapping(@PathVariable String Id){        System.out.println("testRequestMapping执行了"+Id);        return "success";    }

jsp前端代码块

@RequestMapping测试

@RequestMapping注解的六个属性详解

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

RequestMapping注解有六个属性

下面分成三类进行说明

valuemethod

  • value:指定请求的实际地址,指定的地址可以是具体地址、可以RestFul动态获取、也可以使用正则设置;

  • method:指定请求的method类型, 分为GET、POST、PUT、DELETE等;

consumesproduces

  • consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

  • produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

paramsheaders

  • params:指定request中必须包含某些参数值是,才让该方法处理。

  • headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

以上就是关于"RequestMapping注解有什么作用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

0