先来说下 @RequestMapping注解的作用:
该注解的最大作用:完成"请求路径"到"处理该请求方法"之间的映射关系,放在类上方,主要是给类中的方法,定义一个namespace(命名空间)、放在方法上表示请求到达方法的具体位置。
比如:(那么访问路径就是“/sys/login”这样去访问)
@RequestMapping("/sys") @Controller public class LoginController { private Logger log = Logger.getLogger(this.getClass()); @RequestMapping(value = "/login") public ModelAndView login(HttpServletRequest req, HttpServletResponse res) { String loginName = req.getParameter("loginName"); String password = req.getParameter("password"); log.info(loginName); log.info(password); ModelAndView mv = new ModelAndView("/layout/main"); return mv; } @RequestMapping(value = "/login02") public ModelAndView login02(HttpServletRequest req,HttpServletResponse res) { String loginName = req.getParameter("loginName"); String password = req.getParameter("password"); log.info(loginName); log.info(password); ModelAndView mv = new ModelAndView("/layout/main"); return mv; } }
关于它的属性
value 属性:
value 属性为必填属性,不可省略,但是value= 这6个字符可以省略。 它的作用:主要是完成"请求路径" 到 "处理该请求"的方法之间的映射关系
它的配置方式: @RequestMapping(value=“/users/**”) 匹配“/users/abc/abc”;
@RequestMapping(value="/product?") 匹配“/product1”或“/producta”,但不匹配“/product”或“/productaa”或“/product/asdf”;
@RequestMapping(value="/product*") 匹配“/productabc”或“/product”,但不匹配“/productabc/abc”;
@RequestMapping(value="/product/*") 匹配“/product/abc”,但不匹配“/productabc”;
@RequestMapping(value={"/test1", "/create"})匹配"/test1"或"/create"
method 属性:
method 该属性可以在后台定义前端页面,采用什么样的HTTP提交方法,如果不满足 将抛出405 Method not allowed 这种错误
params 该属性 :
params 该属性可以在后台定义前端页面,在提交参数数据,需要对按照后台设定的参数条件,传递参数
@RequestMapping(value="/toLogin",params="flag") 代表请求中必须要有名为flag的提交项
@RequestMapping(value="/toLogin",params="!flag") 代表请求中不能有名为flag的提交项
@RequestMapping(value="/toLogin",params="flag=hello") 代表请求中必须有名为flag的提交项,且值为hello
@RequestMapping(value="/toLogin",params="flag!=hello") 代表请求中如果有名为flag的提交项,其值不能为hello
@RequestMapping(value="/toLogin",params={"flag1","flag2=hello"})代表请求中必须有名为flag1的提交项,同时必须有名为flag2的提交项,且flag2的值必须为hello
比如下面:就要求提交方式必须是post,且传下来的密码不能为123456,不能有userName的提交项
@RequestMapping(value = "/login", method = { RequestMethod.POST }, params = { "password!=123456", "!userName" }) public ModelAndView login(HttpServletRequest req, HttpServletResponse res) { String loginName = req.getParameter("loginName"); String password = req.getParameter("password"); log.info(loginName); log.info(password); ModelAndView mv = new ModelAndView("/layout/main"); return mv; }
原文链接:https://blog.csdn.net/IT_CREATE/article/details/86565710