在SpringMVC中,控制器Controller负责处理由DispatcherServlet分发的请求,它把用户请求数据经过业务处理层处理之后封装成一个Model,然后再把该Mode返回给对应的View进行展示。SpringMVC中提供了一个非常简便的定义Controller的方法,只需使用@Controller标记一个类是Controller ,然后使用@RequestMapping和@RequestParam 等一些注解用以定义URL请求和Controller方法之间的映射,这样的Controller就能被外界访问到。Controller不会直接依赖于HttpServletRequest和HttpServletResponse等HttpServlet对象,它们可以通过Controller的方法参数灵活的获取到。
先定义一个简单的Controller
@Controller
public class MyController {
@RequestMapping ( “/showView” )
public ModelAndView showView() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName( “viewName” );
modelAndView.addObject( " model中的属性名称 " , " 对应的属性值,是一个对象 " );
return modelAndView;
}
}
@Controller是标记在类MyController上面的,所以类MyController就是一个SpringMVC Controller对象了,然后使用@RequestMapping(“/showView”)标记在Controller方法上,表示当请求/showView.do的时候访问的是MyController的showView方法,该方法返回了一个包括Model和View的ModelAndView对象。
使用@RequestMapping来映射Request请求与处理器
@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。
SpringMVC-Controller
最新推荐文章于 2022-03-20 16:24:41 发布