@RequestMapping笔记

2015-11-25  本文已影响936人  ParkinWu

@RequestMapping

  1. 可以创建数量不限的控制器,分别处理不同的业务请求
  2. 每个控制器可以有多个处理请求的方法,每个方法负责不同的请求操作

如果把请求映射到控制器的对应的方法?
@RequestMapping

类定义和方法定义都可以使用

  1. 类定义处,提供初步请求映射信息
  2. 方法处,提供详细映射信息

@RequestMapping包含四个方面过滤条件(URL,Param,Method,Header)

  1. URL (此URL相对与Web应用的部署路径)
@RequestMapping(value = "/login.html")
    public String loginPage() {
        return "login";
    }

@RequestMapping(value = "/user/{userId}")
public String loginPage(@PathVariable String userId, String otherParam) {
...
}


2. 请求参数

  * 请求必须要包含一个名为param1的参数, 例如http://localhost:8080/example/login.html?param1=xxx ,否则404

@RequestMapping(value = "/login.html" params = "param1")
public String loginPage() {
return "login";
}

  * 请求中不能包含一个名为param1的参数,例如http://localhost:8080/example/login.html?param1=xxx ,会404

@RequestMapping(value = "/login.html" params = "!param1")
public String loginPage() {
return "login";
}

  * 请求中包含一个名为param1的参数,但其值不能为value1, 并将其传入方法

@RequestMapping(value = "/login.html" params = "param1!=value1")
public String loginPage(@RequestParam("param1") String param1) {
return "login";
}

  * 请求中包含名为param1和param2的参数,但其值必须为param1必须等于value1

@RequestMapping(value = "/login.html" params = {"param1=value1", "param2"})
public String loginPage() {
return "login";
}

3. 请求方法
  * 请求中包含名为param1和param2的参数,但其值必须为param1必须等于value1,必须是POST请求

@RequestMapping(value = "/login.html", params = {"param1=value1", "param2"}, method = RequestMethod.POST)
public String loginPage() {
return "login";
}

4. 请求头
   * 请求中包含名为param1和param2的参数,但其值必须为param1必须等于value1,必须是POST请求, content-type必须是text/*(类似参数的处理规则)

@RequestMapping(value = "/login.html", params = {"param1=value1", "param2"}, method = RequestMethod.POST, headers = "content-type=text/*")
public String loginPage() {
return "login";
}

上一篇 下一篇

猜你喜欢

热点阅读