一、 设置ModelAndView对象,根据View的名称,和视图解析器跳转到指定的页面
页面:视图解析器的
前缀 +
view-name + 视图解析器的
后缀。
@RequestMapping(value="/hello")
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//新建一个ModelAndView对象
ModelAndView mv = new ModelAndView();
//封装要显示到视图中的数据
mv.addObject("msg", "Hello, spring mvc!");
//设置视图名
mv.setViewName("hello");
//WEB-INF/jsp/hello.jsp
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>
|
二、通过ServletAPI来实现
- 通过HttpServletResponse来进行输出:
@RequestMapping(value="/hello")
public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().write("Hello spring mvc use httpServlet API");
}
- 通过HttpServletResponse实现重定向:
@RequestMapping(value="/hello")
public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException {
//实现重定向
response.sendRedirect("index.jsp");
}
- 通过HttpServletRequest实现重定向:
@RequestMapping(value="/hello")
public void hello(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//实现转发
request.setAttribute("msg", "servlet api forward");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
使用ServletAPI来实现不需要配置视图解析器 |
三、通过Spring MVC来实现
- 通过Spring MVC来实现转发和重定向-没有视图解析器:
转发的实现:
@RequestMapping(value="/hello")
public String hello() {
//转发1
return "index.jsp";
}
@RequestMapping(value="/hello")
public String hello() {
//转发2
return "
forward:index.jsp";
}
重定向的实现:
@RequestMapping(value="/hello")
public String hello() {
//重定向
return "
redirect:index.jsp";
}
不需要配置视图解析器 |
- 通过Spring MVC来实现转发和重定向-有视图解析器:
转发方式:
@RequestMapping(value="/hello")
public String hello() {
return "hello";
}
注意:重定向"redirect:index.jsp" 不需要视图解析器 |