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

简介: SpringMVC中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";
    }
}

jsp中部分代码示例:


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

需要注意的细节:


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"; 
}

jsp的部分代码:


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

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

7.png


params 属性的示例


控制器的部分代码:


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

jsp的部分代码:


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

注意:

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

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

8.png


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";
    }
}

jsp的部分代码:


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

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


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


相关文章
SpringMVC@RequestMapping相关属性
SpringMVC@RequestMapping相关属性
47 0
|
XML 前端开发 数据格式
SSM-SpringMVC-10:SpringMVC中PropertiesMethodNameResolver属性方法名称解析器
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------   上次的以继承MultiActionController可以实现一个处理器中多个处理方法,但是局限出来了,他们的url访问地址只能是与方法名称相同的,因为他默认的方法名称解析器是Interna...
1012 0
|
API
SpringMVC中原生态的Servlet属性
SpringMVC中支持原生态的HttpServletRequest和HttpServletResponse等等。 SpringMVCTest.java package com.hust.springmvc1; import java.io.IOException; import java.io.Writer; import javax.servlet.http.Ht
1196 0
|
Java Spring 容器
springMVC4(9)属性编辑器剖析入参类型转换原理
<div class="markdown_views"> <p>我们通过Http请求提交的参数都以字符串的形式呈现,但最终在springMVC的方法入参中,我们却能得到各种类型的数据,包括Number、Boolean、复杂对象类型、集合类型、Map类型等,这些都是springMVC内置的数据类型转换器帮我们完成的。springMVC的将请求数据绑定到方法入参的流程如下所示:</
2228 0
|
前端开发
springMVC自定义属性编辑器
自定义springMVC的属性编辑器主要有两种方式,一种是使用@InitBinder标签在运行期注册一个属性编辑器,这种编辑器只在当前Controller里面有效;还有一种是实现自己的 WebBindingInitializer,然后定义一个 AnnotationMethodHandlerAdapter的bean,在此bean里面进行注册 ,这种属性编辑器是全局的。
678 0
|
6月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
5月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
75 1
|
5月前
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)