SpringMVC-04-重定向和转发
ServletAPI
原生的方法,无需视图解析器,将这两个参数传入也可以使用(不推荐)
通过HttpServletResponse进行输出
通过HttpServletResponse进行重定向
通过HttpServletResquest进行转发
ModelAndView
携带数据和跳转信息的对象,根据view的名称,和视图解析器跳到指定的页面
public class TestController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
//业务代码
String result = "Hello SpringMVC";
mv.addObject("msg",result);
//视图跳转
mv.setViewName("test");
return mv;
}
}
页面:视图解析器前缀+viewName+视图解析器后缀
<!--视图解析器-->
<bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
使用SpringMVC实现重定向和转发
不配置视图解析器的情况下,需要return全限定名
@Controller
public class ControllerAToB {
@RequestMapping("c1/t1")
public String test01(Model model){
model.addAttribute("msg","Modeltest01");
//转发
return "/WEB-INF/jsp/test.jsp";
//显示转发
return "forward:/WEB-INF/jsp/test.jsp";
//重定向,这里无法访问WEB-INF下的目录文件
return "redirect:/index.jsp"
}
}