• 6 SpringMVC的视图


    6、SpringMVC的视图

    SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户
    SpringMVC视图的种类很多,默认有转发视图和重定向视图
    当工程引入jstl的依赖,转发视图会自动转换为JstlView
    若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后所得到的是ThymeleafView

    6.1、ThymeleafView

    当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图
    后缀所得到的最终路径,会通过转发的方式实现跳转

    <a th:href="@{/test/view/thymeleaf}">测试SpringMVC的ThymeLeaf Viewa>
    
    • 1
    @Controller
    @RequestMapping("/test/view")
    public class ViewController {
    
        @RequestMapping("/thymeleaf")
        public String testThymeLeafView(){
    
            return "success";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    6.2、转发视图

    SpringMVC中默认的转发视图是InternalResourceView

    SpringMVC中创建转发视图的情况:
    当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"forward:“去掉,剩余部分作为最终路径通过转发的方式实现跳转
    例如"forward:/”,“forward:/employee”

    <a th:href="@{/test/view/forward}">测试SpringMVC的InternalResourceView转发视图a>
    
    • 1
        @RequestMapping("/forward")
        public String testForward(){
    
            return "forward:/test/model";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    6.3、重定向视图

    SpringMVC中默认的重定向视图是RedirectView

    当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"redirect:“去掉,剩余部分作为最终路径通过重定向的方式实现跳转
    例如"redirect:/”,“redirect:/employee”

    <a th:href="@{/test/view/redirect}">测试SpringMVC的RedirectView重定向视图a><br>
    
    
    • 1
    • 2
        @RequestMapping("/redirect")
        public String testRedirect(){
            return "redirect:/test/model";
        }
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述


    重定向视图在解析时,会先将redirect:前缀去掉,然后会判断剩余部分是否以/开头,若是则会自动拼接上下文路径

    6.4、视图控制器view-controller

    当控制器方法中,仅仅用来实现页面跳转,即只需要设置视图名称时,可以将处理器方法使用view-controller标签进行表示

        
        <mvc:view-controller path="/" view-name="index">mvc:view-controller>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
        
    <mvc:annotation-driven/>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6


    当SpringMVC中设置任何一个view-controller时,其他控制器中的请求映射将全部失效,此时需要在SpringMVC的核心配置文件中设置开启mvc注解驱动的标签:

  • 相关阅读:
    hdl-graph-slam怎么保存tum格式轨迹
    Bitquiz重塑Learn to Earn热潮,用户零投入让学习创造价值
    【计算机网络】IP协议的相关特性
    洛谷题解 | P1051 谁拿了最多奖学金
    【Java 进阶篇】JDBC PreparedStatement 详解
    Apache Hive源码阅读环境搭建
    CR总结--java函数CR
    剑指offer 76 删除链表中重复的点
    经典算法-----农夫过河问题(深度优先搜索)
    Springboot + Elasticjob-lite 3.x + Elasticjob-lite-UI可视化
  • 原文地址:https://blog.csdn.net/qq_44774198/article/details/126167865