SpringMVC视图解析中的 forward: 与 redirect: 前缀

2020-04-26 00:00:00 视图 前缀 解析

在 SpringMVC 中,可以指定画面的跳转方式。使用 forward: 前缀实现请求转发跳转,使用 redirect: 前缀实现重定向跳转。有前缀的转发和重定向操作和配置的视图解析器没有关系,视图解析器不会进行拼串。

请求转发前缀—forward:

使用请求转发跳转方式,url 地址不会改变,一次请求一次相应,跳转到的地址可以获得 request 中的数据。

    /**
     * 请求转发
     */
    @RequestMapping("/hello")
    public String hello(HttpServletRequest request){
        // 跳转到的地址能获得 name 中的值
        request.setAttribute("name", "jack");
        // 当前项目下的 hello.jsp 页面,请区别配置视图解析器的返回值,这里不会进行拼串
        return "forward:/hello.jsp";
    }

重定向前缀—redirect:

使用重定向跳转方式,url 地址会改变,两次请求两次相应,跳转到的地址不可以获得 request 中的数据(因为是两次请求)。

    /**
     * 重定向
     */
    @RequestMapping("/hello")
    public String hello(HttpServletRequest request){
        // 跳转到的地址无法获得 name 中的值
        request.setAttribute("name", "jack");
        // 不需要添加当前的项目名,SpringMVC会自动的添加项目名
        return "redirect:/hello.jsp";
    }

由于重定向方式无法传递参数,解决方法请参考 RedirectAttributes 这一章节。

    原文作者:柠檬可乐小布丁
    原文地址: https://www.cnblogs.com/lemon-coke-pudding/p/12774992.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章