1. void: 并且没有使用servletapi进行跳转,那么默认会将请求名作为试图名进行跳转。
@RequestMapping("/login") public void login(User user){ }
结果:
void: 在参数中使用了servletapi,并且在方法中使用servletapi进行了跳转。那么按照servletapi跳转的位置进行跳转。
@RequestMapping("/login") public void login(HttpServletRequest req,HttpServletResponse resp){ try { req.getRequestDispatcher("success.jsp").forward(req, resp); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
结果:
使用servletAPI跳转页面,那么通过servletAPI来携带数据可以的,但是通过mvc的模型数据不能携带数据。
2. ModelAndView 返回null 的时候,页面不会跳转。
@RequestMapping("/login") public ModelAndView login(){ System.out.println("login=========="); return null; }
当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转。
@RequestMapping("/login") public ModelAndView login(){ return new ModelAndView(); }
当返回值指定了视图名,那么按照指定的试图名进行跳转。
3. String: 如果返回值时null,那么以请求名作为视图名跳转。
如果指定返回值,那么按照指定返回值作为视图名进行跳转,可以通过model,modelmap等携带数据
如果返回值时带有“forword” 或者 “redired” 前缀,那么将会进行相应的请求转发和重定向,不能通过mvc的数据模型携带数据,可以通过servletApi来携带数据。
4. 其他类型:只能在异步时可以通过json返回。
时间: 2024-10-13 12:42:09