美文网首页
@RequestMapping笔记

@RequestMapping笔记

作者: ParkinWu | 来源:发表于2015-11-25 17:21 被阅读936次

@RequestMapping

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

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

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

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

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

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

    • /user/*/login:匹配/user/xxx/login、/user/yyy/login
    • /user/**/login: 匹配/user/login、/user/aaa/login
    • /user/login??: 匹配/user/loginaa、/user/loginbb
    • /user/{userId}: 匹配 /user/123、/user/456
    • /user/**/{userId} : 匹配 /user/aaa/bbb/123、/user/xxx/345

    其中{userId}占位符可以通过@PathVariable("userId") 绑定到操作方法的参数中

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

相关文章

网友评论

      本文标题:@RequestMapping笔记

      本文链接:https://www.haomeiwen.com/subject/mntdhttx.html