一.总结
总共有四个,
1.设置ModelAndView的值,根据view和视图解析器跳转到指定的页面
2.通过servletapi对象来实现,不需要视图解析器
3.通过springmvc来实现转发和重定向不需要视图解析器
4.通过springmvc来实现转发需要视图解析器,
注意:重定向不需要视图解析器
二.详细
1.设置ModelAndView的值,根据view和视图解析器跳转到指定的页面
页面:视图解析器前缀+viewname+视图解析器后缀
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { // TODO Auto-generated method stub ModelAndView mv=new ModelAndView(); //设置要显示到视图的信息 mv.addObject("msg", "hello springmvc"); //设置视图名称 mv.setViewName("hello"); return mv; }
视图解析器
<!-- 配置渲染器 --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 将视图名 渲染后视图的前缀 --> <property name="prefix" value="/WEB-INF/jsp/"/> <!-- 渲染后视图的后缀 --> <property name="suffix" value=".jsp"/> <!-- 例:视图名为:hello 渲染后:/WEB-INF/jsp/hello.jsp 该页面--> </bean>
2.通过servletapi对象来实现,不需要视图解析器
* @throws IOException */ @RequestMapping("/hello1") public void hello(HttpServletRequest req,HttpServletResponse resp) throws IOException{ resp.getWriter().println("this is use servlet api to success"); }
3.通过springmvc来实现转发和重定向不需要视图解析器
转发1
@RequestMapping("/hello2") public String hello2(){ //转发和重定向之间的区别,转发地址不变,重定向地址改变 //默认寻找webroot内的界面 return "index.jsp"; }
转发2
@RequestMapping("/hello2") public String hello2(){ //转发和重定向之间的区别,转发地址不变,重定向地址改变 //转发1,默认寻找webroot内的界面 return "forward:index.jsp"; }
重定向
@RequestMapping("/hello2") public String hello2(){ //转发和重定向之间的区别,转发地址不变,重定向地址改变 //转发1,默认寻找webroot内的界面 return "redirect:index.jsp"; }
4.通过springmvc来实现转发需要视图解析器
@RequestMapping("/hello2") public String hello2(){ //默认寻找设定的界面 return "forward:hello.do"; }