本文主要介绍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:指定请求必须包含一些指定的头值,以便此方法处理请求。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。