Controller 方法的返回值(下)
三、返回 Void
如果你不用spring mvc帮你完成资源的跳转,此时可以将controller中的方法返回值设置为void。一般情况下有下面两个应用场景:
- 通过原始的servlet来实现跳转
- ajax响应
1、通过原始的servlet来实现跳转
先来看第一个,没有返回值,并不一定真的没有返回值,只是方法的返回值为 void,我们可以通过其他方式给前端返回。实际上,这种方式也可以理解为 Servlet 中的那一套方案。使用servlet来实现跳转,spring mvc底层就是servlet,因此我们可以在controller中使用servlet中的方法来实现页面的跳转,参数的传递。
@Controller
@RequestMapping("/test3")
public class MyController3 {
@RequestMapping("/hello.do")
public void test(HttpServletRequest request, HttpServletResponse response)throws Exception{
request.setAttribute("name", "my name is macay");
//因为使用servlet中的api,所以视图解析就不能使用了
request.getRequestDispatcher("/WEB-INF/jsp/show.jsp").forward(request,response);
}
}