首页 > 作文

关于RequestMapping注解的作用说明

更新时间:2023-04-04 11:09:56 阅读: 评论:0

目录
@requestmapping注解的作用以下为@requestmapping的源码案例@requestmapping注解的六个属性详解下面分成三类进行说明

@requestmapping注解的作用

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

以下为@requestmapping的源码

package org.spri室内设计实习日志ngframework.web.bind.annot踏花归来马蹄香ation;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; chart=utf-8"pageencoding="utf-8"%><!doctype html public "-//w3c//dtd html 4.01 transitional//en""http://www.w3.org/tr/html4/loo.dtd"><html><hea落笔生花d><meta http-equiv="content-type" content="text/html; chart=utf-8"><title>request西班牙语好学吗mapping 的使用</title></head><body><!-- 第一种访问方式 --><a href="${pagecontext.request.contextpath}/account/findaccount" rel="external nofollow" >查询账户</a><!-- 第二种访问方式 --><a href="account/findaccount" rel="external nofollow" >查询账户</a></body></html>

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

控制器代码块:

/*** 保存账户* @return*/@requestmapping(value="/saveaccount",method=requestmethod.post)public string saveaccount() {system.out.println("保存了账户");return "success";}

jsp代码块

<a href="account/saveaccount" rel="exter体质指数计算nal nofollow" >保存账户,get 请求</a><form action="account/saveaccount" method="post"><input type="submit" value="保存账户,post 请求"></form>

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

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

/*** 删除账户* @return*/@requestmapping(value="/removeaccount",params= {"accountname","money>100"})public string removeaccount() {system.out.println("删除了账户");return "success";}

jsp代码块:

<a href="account/removeaccount?accountname=aaa&money>100" rel="external nofollow" >删除账户,金额 100</a><a href="account/removeaccount?accountname=aaa&money>150" rel="external nofollow" >删除账户,金额 150</a>

注意:

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

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

如下图:

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

控制器代码块:

    @requestmapping(value = "/testrequestmapping/{id}")    public string testrequestmapping(@pathvariable string id){        system.out.println("testrequestmapping执行了"+id);        return "success";    }

jsp前端代码块

<a href="account/testrequestmapping/21" rel="external nofollow" >@requestmapping测试</a>

@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值,才能让该方法处理请求。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 11:09:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/f3d9aaa2988f01a6436b726f803f964e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:关于RequestMapping注解的作用说明.doc

本文 PDF 下载地址:关于RequestMapping注解的作用说明.pdf

标签:注解   账户   方法   属性
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图