SpringMVC视图作用详解

 更新时间:2022年11月08日 08:51:12   作者:学习使我快乐T  
这篇文章主要介绍了springMVC中的视图与视图解析器,springMVC视图的种类很多,默认有转发视图和重定向视图,本文就每一种视图给大家详细介绍,需要的朋友可以参考下

SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户

SpringMVC视图的种类很多,默认有转发视图和重定向视图

当工程引入jstl的依赖,转发视图会自动转换为JstlView

若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视 图解析器解析之后所得到的是ThymeleafView

一、ThymeleafView

当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图

后缀所得到的最终路径,会通过转发的方式实现跳转

<a th:href="@{/test/view/thymeleaf}" rel="external nofollow" >测试SpringMVC的视图ThymeleafView</a>
@Controller
public class TestViewController {
    @RequestMapping("/test/view/thymeleaf")
    public String testThymeleafView() {
        return "success";
    }
}

二、转发视图

通过ThymeleafView转发是可以进行页面渲染的,但是通过InternalResourceView转发的页面跳转只能实现一个简单的转发,页面中的Thymeleaf语法解析不了。所以这种方式我们不常用

SpringMVC中默认的转发视图是InternalResourceView

SpringMVC中创建转发视图的情况:

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

例如"forward:/","forward:/employee"

<a th:href="@{/test/view/forward}" rel="external nofollow" >测试SpringMVC的视图InternalResourceView</a>
    @RequestMapping("/test/view/forward")
    public String testInternalResourceView() {
        return "forward:/test/model";
    }

三、重定向视图

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

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

例如"redirect:/","redirect:/employee"

<a th:href="@{/test/view/redirect}" rel="external nofollow" >测试SpringMVC的视图RedirectView</a><br>
    @RequestMapping("test/view/redirect")
    public String testRedirectView() {
        return "redirect:/test/model";
    }

四、视图控制器view-controller

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

注:

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

<mvc:annotation-driven />

    <!--开启mvc的注解驱动-->
    <mvc:annotation-driven />
    <!--
    视图控制器:为当前的请求直接设置视图名称实现页面跳转
    若设置视图控制器,则只有视图控制器所设置的请求会被处理,其他的请求将全部404
    此时必须在配置一个标签:<mvc:annotation-driven />
    -->
    <mvc:view-controller path="/" view-name="index"></mvc:view-controller>

到此这篇关于SpringMVC视图作用详解的文章就介绍到这了,更多相关SpringMVC视图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 安装多个jdk导致eclipse打不开问题解决方案

    安装多个jdk导致eclipse打不开问题解决方案

    这篇文章主要介绍了安装多个jdk导致eclipse打不开问题解决方案,帮助大家更好的理解和使用eclipse,感兴趣的朋友可以了解下
    2020-11-11
  • SpringBoot对数据访问层进行单元测试的方法详解

    SpringBoot对数据访问层进行单元测试的方法详解

    我们公司作为一个面向银行、金融机构的TO B类企业,频繁遇到各个甲方爸爸提出的国产化数据库的改造需求,包括OceanBase, TiDB,geldenDB等等,本文就介绍一种快高效、可复用的解决方案——对数据访问层做单元测试,需要的朋友可以参考下
    2023-08-08
  • 排序算法图解之Java希尔排序

    排序算法图解之Java希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法,其也是一种特殊的插入排序,即将简单的插入排序进行改进后的一个更加高效的版本,也称缩小增量排序。本文通过图片和示例讲解了希尔排序的实现,需要的可以了解一下
    2022-11-11
  • java数据结构与算法之桶排序实现方法详解

    java数据结构与算法之桶排序实现方法详解

    这篇文章主要介绍了java数据结构与算法之桶排序实现方法,结合具体实例形式详细分析了桶排序的概念、原理、实现方法与相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • Java注册邮箱激活验证实现代码

    Java注册邮箱激活验证实现代码

    这篇文章主要介绍了Java注册邮箱激活验证实现代码,有需要的朋友可以参考一下
    2013-12-12
  • java 定时同步数据的任务优化

    java 定时同步数据的任务优化

    这篇文章主要介绍了java 定时同步数据的任务优化,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • Java多态性抽象类与接口细致详解

    Java多态性抽象类与接口细致详解

    这篇文章主要给大家介绍了关于Java中方法使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • MyBatis Mapper代理使用方法详解

    MyBatis Mapper代理使用方法详解

    本文是小编日常收集整理的关于mybatis mapper代理使用方法知识,通过本文还给大家提供有关开发规范方面的知识点,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • maven中自定义MavenArchetype的实现

    maven中自定义MavenArchetype的实现

    Maven自身提供了许多Archetype来方便用户创建Project,为了避免在创建project时重复的拷贝和修改,我们通过自定义Archetype来规范显得还蛮有必要,下面就来介绍一下,感兴趣的可以了解一下
    2025-01-01
  • Java之如何读取Excel获取真实行数

    Java之如何读取Excel获取真实行数

    这篇文章主要介绍了Java之如何读取Excel获取真实行数问题,具有很好的参考价值,希望对大家有所帮助。
    2023-06-06

最新评论