本文主要介绍RequestMapping注释的功能,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
目录
@RequestMapping批注的作用以下是@RequestMapping的源代码案例。@RequestMapping注释的六个属性分三类详细解释。
@RequestMapping注解的作用
@RequestMapping是Spring Web应用程序中最常用的注释之一。这个注释将把HTTP请求映射到MVC和REST控制器的处理方法。处理请求地址映射的注释可以用在类或方法上。用在类上,意味着类中响应请求的所有方法都将此地址作为父路径。
以下为@RequestMapping的源码
打包org . spring framework . web . bind . annotation;
导入Java . lang . annotation . documented;
导入Java . lang . annotation . element type;
导入Java . lang . annotation . retention;
导入Java . lang . annotation . retention policy;
导入Java . lang . annotation . target;
导入org . spring framework . core . annotation . alias for;
@Target({ElementType。方法,ElementType。类型})
@保留(RetentionPolicy。运行时间)
@已记录
@映射
public @interface请求映射{
字符串名称()默认为“”;
@AliasFor('path ')
String[] value()默认值{ };
@AliasFor('value ')
String[] path()默认{ };
RequestMethod[]方法()默认{ };
string[]params()default { };
String[] headers()默认值{ };
String[]消耗()默认值{ };
字符串[]产生()默认值{ };
}
方法上:
所请求URL的第二级访问目录。
属性:
值:用于指定请求的URL。它的功能与path属性相同。方法:用于指定请求的方法。Params:用于指定限制请求参数的条件。它支持简单的表达式。请求参数的键和值必须与配置完全一致。
例如:
Params={"accountname"},表示请求参数必须有accountNameparams={"moeny!00 "},这意味着请求参数中的money不能是100。Headers:用于指定限制请求消息头的条件。
注意:
当上述四个属性中的两个或两个以上出现时,它们的关系是with。
作用:
用于建立请求URL和处理请求的方法之间的对应关系。
出现位置:
所请求URL的一级访问目录。如果这里没有写,就相当于应用程序的根目录。如果写的话,需要以/开头。它出现的目的是使我们的URL以模块化的方式进行管理:
例如:
账户模块:
/帐户/添加/帐户/更新/帐户/删除…
订单模块:
/订购/添加/订购/更新/订购/删除
案例
普通案例:分别在类和方法上Annotate @RequestMapping注释,所以在前端写链接的时候要写完整的路径(类标签的路径方法标签上的路径强度)
控制器的代码块:
/**
*请求映射注释出现的位置。
* @作者
* @ http://www.ithiema.com公司
* @版本1.0
*/
@Controller('accountController ')
@RequestMapping('/account ')
公共类AccountController {
@RequestMapping('/findAccount ')
公共字符串findAccount() {
System.out.println('查询了账号。');
返回“成功”;
}
}
JSP中的代码块
% @ page language=' Java ' content type=' text/html;charset=UTF-8 ' page encoding=' UTF-8 ' %
!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN '
' http://www . w3 . org/TR/html 4/loose . dtd '
超文本标记语言
头
meta http-equiv=' Content-Type ' Content=' text/html;charset=UTF-8 '
titlerequestmapping /title的使用
/头
身体
!-第一种进入方式-
a href=' $ { pagecontext . request . context path }/account/find account ' rel=' external no follow '
查询帐户
/a
!-第二种方法是-
a href=' account/find account ' rel=' external no follow '查询帐户/a
/body
/html
案例:用于指定请求方法。如果请求是get请求,那么前端写请求方法时method=get,否则,如果请求是post请求,前端的medthod=post。
控制器代码块:
/**
*保存帐户
* @返回
*/
@ request mapping(value='/save account ',method=RequestMethod。帖子)
公共字符串saveAccount() {
System.out.println('保存了帐户');
返回“成功”;
}
Jsp代码块
a=' account/Save account ' rel=' external no follow '保存帐户,获取请求/a
表单操作='account/saveAccount '方法='post '
Type=' submit' value='保存帐户,发布请求'
/表单
注意:使用get request时,错误信息为405,表示该方法不支持get request。
params 属性的示例:用于指定限制请求参数的条件。它支持简单的表达式。请求参数的键和值必须与配置完全一致。写完这个属性后,必须在前端发送请求。前端必须有这个属性,否则无法访问。控制器代码块:
/**
*删除账户
* @返回
*/
@ request mapping(value='/remove account ',params={'accountName ',' money100'})
公共字符串removeAccount() {
System.out.println('已删除的帐户');
返回“成功”;
}
Jsp代码块:
a href='account/removeAccount?account name=AAA money 100 ' rel=' external no follow '删除账户,金额为100/a
a href='account/removeAccount?account name=AAA money 150 ' rel=' external no follow '删除账户,金额为150/a
注意:
当我们点击第一个超链接时,我们可以成功地访问它。
当我们点击第二个超链接时,我们无法访问它。
如下图:
支持REST风格的参数:代表性状态转移(REST)是分布式超媒体系统(如万维网)的一种架构风格。(以下测试代码与@PathVariable一起使用)
控制器代码块:
@ request mapping(value='/testRequestMapping/{ Id } ')
公共字符串testRequestMapping(@ path variable String Id){
系统;出;println ('TestRequestMapping已执行' Id);
返回“成功”;
}
Jsp前端代码块
a href=' account/testrequestmapping/21 ' rel=' externalnofowl ' @ request mapping test/a
@RequestMapping注解的六个属性详解
RequestMapping是一个用于处理请求地址映射的注释,可以用在类或方法上。用在类上,意味着类中响应请求的所有方法都将此地址作为父路径。
RequestMapping注释有六个属性。
下面分成三类进行说明
价值,方法
值:指定请求的实际地址。指定地址可以是特定地址,可以由RestFul动态获取,也可以使用常规设置;方法:指定请求的方法类型,包括GET、POST、PUT、DELETE等。
消费,生产
Consumes:指定处理请求所提交的内容类型(Content-Type),如application/json、text/html;Produces:指定要返回的内容类型,仅当指定的类型包含在请求标头中的(Accept)类型中时,才会返回该内容类型。
参数,标题
Params:指定此方法要处理的请求中必须包含一些参数值。Headers:指定请求必须包含一些指定的头值,以便此方法处理请求。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。