SpringMVC_处理器方法的返回值
一、返回ModelAndView
若处理器方法处理完后,需要跳转到其他资源,且又要在跳转的资源间传递数据,此时处理器方法返回ModelAndView比较好。当然,若要返回ModelAndView,则处理器方法中需要定义ModelAndView对象。
在使用时,若该处理器方法只是进行跳转而不传递数据,或只是传递数据而并不向任何资源跳转(如对页面的Ajax异步响应),此时若返回ModelAndView,则将总是有一部分多余:要么Model多余,要么View多余,即此时返回ModelAndView将不合适。
即既携带数据又进行页面跳转。
二、返回String
(1)返回内部资源逻辑视图名
处理器方法返回的字符串可以指定逻辑视图名,通过视图解析器可以将其转换物理视图地址。
或
(2)返回view对象名
三、返回void
(1)通过ServletAPI完成
通过在处理器方法的参数中放入ServletAPI参数,来完成资源跳转时所要传递的数据及跳转。
可在方法参数中放入HTTPServletRequest或HttpSession,使方法中可以直接将数据放入到request、session的域中,也可通过request.getServletContext()获取ServletContext,从而将数据放入到application的域中。
可在方法参数中放入HttpServletRequest与HttpServletResponse,使方法可以完成请求转发与重定向。值得注意,重定向是无法完成对/WEB-INF/下资源的访问。
请求转发:request.getRequestDispatcher(“目标页面”).forward(request.response);
重定向:request.setRedirect(“目标页面”)