一.总结
总共有四个,
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";
}