springMVC中的跳转结果的方式

1、 设置ModelAndView

根据view的名称和视图解析器跳转到指定的页面

    <!-- 配置视图渲染器 -->
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <!-- 结果视图的前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 结果视图的后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>
     ModelAndView mv = new ModelAndView();
        mv.addObject("msg", "hello springmvc annotation");
        mv.setViewName("hello");

2、 通过ServletAPI对象来实现,不需要视图解析器

通过HttpServletResponse对象进行输出

@Controller
@RequestMapping("/springmvc")
public class HelloController {

    @RequestMapping("/hello")
    public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.getWriter().println("hello springmvc use httpservlet api");
    }
    
}

通过HttpServletResponse对象来重定向

    @RequestMapping("/hello2")
    public void hello2(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 实现重定向
        response.sendRedirect(request.getContextPath() + "/index.jsp");
    }

通过HttpServletRequest对象实现转发

    @RequestMapping("/hello3")
    public void hello3(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 实现转发
        request.setAttribute("msg", "servlet api forward");
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    }

2、 通过springmvc来实现转发和重定向—没有视图解析器

转发实现1

    @RequestMapping("/hello")
    public String hello() {
        // 转发
        return "index.jsp";
    }

转发实现2

    @RequestMapping("/hello2")
    public String hello2() {
        // 转发
        return "forward:index.jsp";
    }

重定向实现

    @RequestMapping("/hello3")
    public String hello3() {
        // 重定向
        return "redirect:index.jsp";
    }

3、 通过springmvc来实现转发和重定向—有视图解析器

转发实现

    @RequestMapping("/hello4")
    public String hello4() {
        // 转发
        return "hello";
    }

重定向实现

    @RequestMapping("/hello5")
    public String hello5() {
        // 重定向
        return "redirect:hello4.do";
    }

 

posted @ 2018-07-08 19:57  莯汐  阅读(98)  评论(0)    收藏  举报