先来说下@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;
}