SpringMVC | @RequestMapping请求映射

一、value属性

—— 设置映射路径

  1. 可简写

  • 简写前:

@RequestMapping(value = "user")
  • 简写后:

@RequestMapping("user")
  1. 可以声明在类以及方法上

@Controller
public class UserController {
    @RequestMapping(value = "func1")
    public ModelAndView func1() {
        return null;
    }
}
  • 声明在类以及方法上:浏览器访问路径 http://localhost:8080/项目名称/类声明/方法声明

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping(value = "func1")
    public ModelAndView func1() {
        return null;
    }
}

二、method属性

—— 设置请求方式,仅当请求方式为指定方式时,控制器才执行方法

  1. 设置method属性

    @RequestMapping(value = "func1", method = {RequestMethod.POST, RequestMethod.GET})
    public ModelAndView func1() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("index");
        return modelAndView;
    }

只有当请求为POST或者GET 时才执行方法

  1. 请求方法

  • RequestMethod.GET(缺省默认)

  • RequestMethod.POST

  • RequestMethod.PUT

  • RequestMethod.DELETE

三、params属性

—— 设置请求参数,仅当请求携带指定参数时,控制器才执行方法

  1. 设置params属性

    @RequestMapping(value = "func2", params = {"name=tom", "password=123"})
    public ModelAndView func2(String name, String password) {
        System.out.println(name);
        System.out.println(password);
        return null;
    }

只有当访问地址为 http://localhost:8080/func2?name=tom&password=123 时才执行方法

四、headers属性

—— 设置请求中请求头的信息,仅当请求头携带指定信息时,控制器才执行方法

  1. 设置headers属性

    @RequestMapping(value = "func3", headers = "host=localhost:8080")
    public ModelAndView func3() {
        return null;
    }

只有当请求头带有 host=localhost:8080的信息 时才执行方法(host=localhost:8080意为只有本地电脑可以访问,通过IP无法访问)

五、占位符

—— 设置请求url中的占位符,通过@PathVariable绑定参数

  1. 设置占位符

    @RequestMapping("func4/{name}/{password}")
    public ModelAndView func4(@PathVariable("name") String name,
                              @PathVariable("password") String password) {
        System.out.println(name);
        System.out.println(password);
        return null;
    }

当访问地址为 /func4/tom/1234 时,方法注解将url进行解析,将@PathVariable("XXX")注解中的名字与url中{"XXX"}的名字一一对应,把tom、1234的信息填入name、password变量中

猜你喜欢

转载自blog.csdn.net/sun80760/article/details/128720756