使用 @RequestMapping 来映射 Request 请求与处理器
可以使用@RequestMapping 来映射URL 到控制器类,或者是到Controller 控制器的处理方法上。当@RequestMapping 标记在Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址都是相对于类上的@RequestMapping 而言的;当Controller 类上没有标记@RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/ ”而言的。
- @Controller
- public class MyController {
- @RequestMapping ( "/showView" )
- public ModelAndView showView() {
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.setViewName( "viewName" );
- modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );
- return modelAndView;
- }
- }
在这个控制器中,因为MyController 没有被@RequestMapping 标记,所以当需要访问到里面使用了@RequestMapping 标记的showView 方法时,就是使用的绝对路径/showView.do 请求就可以了。
- @Controller
- @RequestMapping ( "/test" )
- public class MyController {
- @RequestMapping ( "/showView" )
- public ModelAndView showView() {
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.setViewName( "viewName" );
- modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );
- return modelAndView;
- }
- }
这种情况是在控制器上加了@RequestMapping 注解,所以当需要访问到里面使用了@RequestMapping 标记的方法showView() 的时候就需要使用showView 方法上@RequestMapping 相对于控制器MyController上@RequestMapping 的地址,即/test/showView.do 。