SpringMVC中RequestMapping注解【作用、出现的位置、属性】

举报
牛哄哄的柯南 发表于 2021/05/26 15:23:43 2021/05/26
【摘要】 RequestMapping注解 作用出现位置属性 作用 用于建立请求 URL 和处理请求方法之间的对应关系。 出现位置 1.作用在类上:请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。 2.作用在方法上:请求 URL 的第二级访问目录。 控制器中部分代码示例: @Controller ...

RequestMapping注解

作用

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

出现位置

1.作用在类上:请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。
2.作用在方法上:请求 URL 的第二级访问目录。

控制器中部分代码示例:

@Controller
@RequestMapping(path = "/user") //第一级的访问目录
public class HelloController { @RequestMapping(path = "/hello") //第二级的访问目录 public String sayHello(){ System.out.println("Hello SpringMVC"); return "success"; } @RequestMapping(value = "/testRequestmapping") //第二级的访问目录 public String testRequestmapping(){ System.out.println("测试注解"); return "success"; }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

jsp中部分代码示例:

<!-- 第一种访问方式 --> 
<a href="${pageContext.request.contextPath}/user/hello">sayHello</a> <br/>
<!-- 第二种访问方式 --> 
<a href="user/testRequestmapping">测试注解</a>

  
 
  • 1
  • 2
  • 3
  • 4

需要注意的细节:

1.细节:路径可以不编写 / 表示应用的根目录开始
2.细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /

属性

value: 用于指定请求的 URL。它和 path 属性的作用是一样的。
method: 用于指定请求的方式。
params: 用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和配置的一模一样。

例如:
params = {“username”},表示请求参数必须有 username
params = {“age!100”},表示请求参数中 age 不能是 100

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

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

value或path 属性的示例

上面出现位置的示例就是value或path 属性的示例。

method 属性的示例

控制器的部分代码:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

jsp的部分代码:

<!-- 请求方式的示例 --> 
<a href="account/saveAccount">保存账户,get 请求</a> <br/>
<form action="account/saveAccount" method="post"> 
	<input type="submit" value="保存账户,post 请求">
</form>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

注意:当使用 get 请求时即method="get",提示错误信息是 405,信息是方法不支持 get 方式请求。
在这里插入图片描述

params 属性的示例

控制器的部分代码:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

jsp的部分代码:

<!-- 请求参数的示例 --> 
<a href="account/removeAccount?accountName=aaa&money>100">删除账户,金额 100</a> <br/>
<a href="account/removeAccount?accountName=aaa&money>150">删除账户,金额 150</a>

  
 
  • 1
  • 2
  • 3

注意:
当我们点击第一个超链接时,可以访问成功。
当我们点击第二个超链接时,无法访问。如下图:

在这里插入图片描述

params键值对的情况以及headers属性

还存在params = {"username=keafmd"}键值对的情况:这个示例的意思就是不光要有username的属性还要求值为Keafmd。
同时headers属性也就是表示必须包含相应的请求头才可以。
控制器的部分代码:

@Controller
@RequestMapping(path = "/user")
public class HelloController { @RequestMapping(value = "/testRequestmapping",method = {RequestMethod.GET},params = {"username=keafmd"},headers = {"Accept"}) public String testRequestmapping(){ System.out.println("测试注解"); return "success"; }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

jsp的部分代码:

<a href="user/testRequestmapping?username=keafmd">RequestMapping注解</a>

  
 
  • 1

这样就是可以成功访问的。

以上就是SpringMVC中RequestMapping注解【作用、出现的位置、属性】全部内容。

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端的话,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述

加油!

共同努力!

Keafmd

文章来源: keafmd.blog.csdn.net,作者:牛哄哄的柯南,版权归原作者所有,如需转载,请联系作者。

原文链接:keafmd.blog.csdn.net/article/details/113096620

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。