天天看点

SpringMVC框架----RequestMapping注解

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

客户端会发一个请求过来,后台会有一个方法去执行它,现在我们需要把请求地址路径和我们的方法建立一个映射关联,发了请求,我们的方法就执行。

RequestMapping用来建立他们之间的对应关系。

源码

SpringMVC框架----RequestMapping注解

表名requestMapping既可以作用在方法上,也可以作用在类或者接口上。

如果路径是/user/hello

表名它有两级目录,如果把注解放在类上,可以声明一级目录,把注解放在方法上,指的就是二级目录

好处:可以分模块开发。

比如我现在user下的有增删改查方法,我们在account中也有。

例如:当我们的类中写了/user,那么我们在请求的时候必须要加上user/,否则点击的时候就会404错误,即请求路径不正确。

index.jsp文件中

HelloController类中

/*控制器类,用来接收请求*/
@Controller
@RequestMapping(path="/user")
public class HelloController {
    @RequestMapping(path="/testRequestMapping")
    public String testRequestMapping(){
        System.out.println("测试RequstMapping注解...");
        return "success";
    }
}
           

鼠标左键+ctrl可以点击requestMapping查看源码

SpringMVC框架----RequestMapping注解

如图可知,path和value属性的作用是相同的,value和path可以互换。都是指我们映射的路径。

由于此时我们是value属性,所以可以省略不写。

value:用于指定请求的 URL。它和 path 属性的作用是一样的。

method:用于指定请求的方式

如果点击的是超链接,我们现在用的是超链接,它是固定的,一定是get方式,如果后台方法规定,get方法可以请求我,点击超链接,方法就可以执行了。如果规定方法必须是有post请求来访问,则不会执行。

SpringMVC框架----RequestMapping注解

枚举类直接用类名.属性就可以拿到其中的值了。再加属性如果不是一个属性,value就必须要写上去了。我们后面再写,method。

此时,我们只适用于post方式提交请求,

而由于超链接是get请求,重新部署服务器,报405错

method not allowed

SpringMVC框架----RequestMapping注解

method可以决定一个方法的具体请求的方式

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

SpringMVC框架----RequestMapping注解

类型是字符串

表示请求我这个方法,必须给我传一个username的属性,如果不传,这个方法就不会被执行。

当我们不传参数的时候,报的400错误,Bad Request

SpringMVC框架----RequestMapping注解

此时就可以执行了,必须要有属性,并且名字是username

此时也不行,它要求请求的key和配置是一模一样的。

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