在web MVC中要访问某个页面,我们应该跳转到哪个页面呢,这时我们用的是页面的物理路径,某个页面在某个文件夹下,我们就把路径设定到那里。而RequestMapping就是相对路径了。
首先,@RequestMapping用在类上,这时该路径就是这个类中所有的方法的父路径了;用在方法上,前端调用该方法的路径就是父路径+方法上的子路径。
1.我们先说一下@RequestMapping的value属性。
我们可以直接写@RequestMapping(“lulu/hello.html”),它指的其实就是value的值。
@Controller
@RequestMapping("/hello")
public class DemoController{
@RequestMapping(method = RequestMethod.POST, value = "put")//前端访问该方法的路径为"/hello/put"
public Object update(@ModelAttribute Shop bean, HttpServletRequest request) {
return XX;
}
@RequestMapping(method = RequestMethod.POST)//前端访问该方法的路径为"/hello",但是其请求方法是post
public Object post(@ModelAttribute Shop bean, HttpServletRequest request) {
return XX;
}
@RequestMapping(value="/{id}", method = RequestMethod.GET)//前端访问该方法的路径为"/hello/id(此id是一个变量)"
public Object getForDay(@PathVariable Long id, Model model) {
return XX;
}
}
如果类中有多个方法,而这些方法没有设定value的值,那么是怎么确定应该调用哪个方法呢?
调用方法时会根据路径进行匹配,然后再根据post,get,以及参数进行匹配。
value的设置可以是具体的路径,如第一个方法,也可以是变量,如第三个方法,也可以是含正则表达式的一类值。