springmvc之转发和重定向

springmvc之转发和重定向

1、转发

controller 方法在提供了 String 类型的返回值之后,默认就是请求转发。我们也可以写成:

/**
* 转发
* @return
*/
@RequestMapping("/testForward")
public String testForward() {
    System.out.println("AccountController 的 testForward 方法执行了。。。。");
    return "forward:/WEB-INF/pages/success.jsp"; 
}

需要注意的是,如果用了 formward:则路径必须写成实际视图 url,不能写逻辑视图。它相当于request.getRequestDispatcher("url").forward(request,response)。使用请求转发,既可以转发到 jsp,也可以转发到其他的控制器方法。

2、重定向

contrller 方法提供了一个 String 类型返回值之后,它需要在返回值里使用:redirect

/**
* 重定向
* @return
*/
@RequestMapping("/testRedirect")
public String testRedirect() {
    System.out.println("AccountController 的 testRedirect 方法执行了。。。。");
    return "redirect:testReturnModelAndView"; 
}

它相当于“response.sendRedirect(url)”。需要注意的是,如果是重定向到 jsp 页面,则 jsp 页面不能写在 WEB-INF 目录中,否则无法找到。

记得快乐
原文地址:https://www.cnblogs.com/Y-wee/p/13840302.html