@Controller
public class HelloController {
/** 转发
* 处理方法返回ModelAndView,实现转化forward
* 语法:setViewName("forward:视图文件完整路径")
* forward特点:不和视图解析器一同使用,就当项目中没有视图解析器。
*
*/
@RequestMapping(value = "/forward.do")
public ModelAndView doForward(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", "Hello Spring MVC");
// modelAndView.setViewName("show");
//没有配置视图解析器的文件可以用转发,显示转发
modelAndView.setViewName("forward:WEB-INF/view/forward.jsp");
// modelAndView.setViewName("forward:WEB-INF/hello.jsp");
return modelAndView;
}
/**
* 重定向
* 处理方法返回ModelAndView,实现重定向redirect
* 语法:setViewName("redirect:视图文件完整路径")
* redirect特点:不和视图解析器一同使用,就当项目中没有视图解析器。
*
*/
@RequestMapping(value = "/redirect.do")
public ModelAndView doRedirect(){
ModelAndView modelAndView = new ModelAndView();
//数据放入request域中
modelAndView.addObject("msg", "Hello SpringMVC");
//重定向
modelAndView.setViewName("redirect:/redirect.jsp");
// modelAndView.setViewName("redirect:WEB-INF/view/redirect.jsp"); 在重定向操作不能访问WEB-INF下的资源
/*
* 框架对重定向的操作:
* 1,框架会把Model中的简单类型的数据,转为string使用,作为hello.jsp的get请求参数使用。
* 目的是在doRedirect.do和hello.jsp 两次请求之间传递数调
* 2,在目标redirect.jsp页面可以使用参数集合对象,${param}获取请求参数值
* ${param.msg}
* 3,在重定向操作不能访问WEB-INF下的资源
* */
//http://localhost:8080/ch08/WEB-INF/redirect.jsp?msg=Hello+Spring+MVC
return modelAndView;
}
}
SpringMVC中的转发和重定向
最新推荐文章于 2022-12-01 12:45:10 发布