SpringMVC的四种跳转方式

107 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6月更文挑战」的第25天,点击查看活动详情

1. SpringMVC的四种跳转方式

默认的跳转是请求转发,直接跳转到jsp页面展示,还可以使用框架提供的关键字redirect:,进行一个重定向操作,包括重定向页面和重定向action,使用框架提供的关键字forward:,进行服务器内部转发操作,包括转发页面和转发action。当使用redirect:和forward:关键字时,视图解析器中前缀后缀的拼接就无效了。

页面部分:

<!--ctrl+d:复制当前行-->\
<a href=" **${** pageContext.request.contextPath **}** /one.action">请求转发页面(默认)</a><br>\
<a href=" **${** pageContext.request.contextPath **}** /two.action">请求转发action</a><br>\
<a href=" **${** pageContext.request.contextPath **}** /three.action">重定向页面</a><br>\
<a href=" **${** pageContext.request.contextPath **}** /four.action">重定向action</a><br>

Controller部分:

@Controller\
public class JumpAction {\
    @RequestMapping("/one")\
    public String one(){\
        System.*out*.println("请求转发页面(默认)");\
        //以前的访问方式\
        //request.getRequestDispatcher("/admin/main.jsp").forward(request,response);\
        //观察地址栏的变化:  http://localhost:8080/one.action\
        //return "main"; //默认的访问方式是自动拼接前缀和后缀进行跳转\
        return "forward:/fore/user.jsp";//只要使用了forward:就可以屏蔽前缀和后缀的拼接,自己手工构建返回的全部路径+.jsp\
    }\
    @RequestMapping("/two")\
    public String two(){\
        System.*out*.println("请求转发action");\
        //观察地址栏的变化:  http://localhost:8080/two.action\
        return "forward:/other.action";   //不使用forward:,就会是这样的路径  /admin/other.action/.jsp\
    }\
    @RequestMapping("/three")\
    public String three(){\
        System.*out*.println("重定向页面");\
        //观察地址栏的变化  http://localhost:8080/admin/main.jsp\
        return "redirect:/admin/main.jsp";//只要使用了redirect:就可以屏蔽前缀和后缀的拼接\
    }\
    @RequestMapping("/four")\
    public String four(){\
        System.*out*.println("重定向action");\
        //观察地址栏的变化  http://localhost:8080/other.action\
        return "redirect:/other.action";//只要使用了redirect:就可以屏蔽前缀和后缀的拼接\
    }\
}

2.  SpringMVC支持的默认参数类型

这些类型只要写在方法参数中就可以使用了。

1)HttpServletRequest 对象

2)HttpServletResponse 对象

3)HttpSession 对象

4)Model/ModelMap 对象

5)Map<String,Object>对象