注意:本文环境搭建请参考5.2节

6.1、视图概述

  • 视图的作用是渲染数据,将模型Model中的数据展示给用户;

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

  • SpringMVC中的视图是View接口;

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

  • 若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,

    由此视图解析器解析之后所得到的是ThymeleafView。

6.2、ThymeleafView(常用)

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

  • 视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转。

6.2.1、控制器方法示例

注意:此时SpringMVC配置文件中所配置的视图解析器为ThymeleafViewResolver

    @RequestMapping("/test/view/thymeleaf")
public String testThymeleafView(){
return "success";
}

6.2.2、页面请求示例

<a th:href="@{/test/view/thymeleaf}">测试SpringMVC的视图ThymeleafView</a>

6.2.3、测试效果

由浏览器地址栏可知,ThymeleafView本质上是转发视图

6.3、InternalResourceView(少用)

  • SpringMVC中默认的转发视图是InternalResourceView;

  • 当控制器方法中所设置的视图名称以"forward:"为前缀时,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,

    而是会将前缀"forward:"去掉,剩余部分作为最终路径,通过转发的方式实现跳转

6.3.1、控制器方法示例

注意:因为DispatcherServlet接管了所有请求,所以此时请求转发不能直接返回物理视图,但可以调用其他请求

    @RequestMapping("/test/view/forward")
public String testInternalResourceView(){
return "forward:/test/view/thymeleaf";
}

6.3.2、页面请求示例

<a th:href="@{/test/view/forward}">测试SpringMVC的视图InternalResourceView</a>

6.3.3、测试效果

6.4、重定向视图

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

  • 当控制器方法中所设置的视图名称以"redirect:"为前缀时,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,

    而是会将前缀"redirect:"去掉,剩余部分作为最终路径,通过重定向的方式实现跳转

6.4.1、控制器方法示例

注意:因为DispatcherServlet接管了所有请求,所以此时重定向不能直接返回物理视图,但可以调用其他请求

    @RequestMapping("/test/view/redirect")
public String testRedirectView(){
return "redirect:/test/view/thymeleaf";
}

6.4.2、页面请求示例

<a th:href="@{/test/view/redirect}">测试SpringMVC的视图RedirectView</a>

6.4.3、测试效果

注意:浏览器地址栏显示为重定向的地址

6.5、请求转发和重定向的使用情景

  • 请求转发:失败时使用,例如登录失败用请求转发

  • 重定向:成功时使用,例如登录成功用重定向

6.6、视图控制器

当控制器方法仅仅用来实现页面跳转(即只需要设置视图名称时),可以使用视图控制器来替代其功能

6.6.1、要被替代的控制器方法示例

6.6.2、视图控制器示例

注意:如果设置了视图控制器,则只有视图控制器所指定的请求路径会被处理,其他请求将全部404;

为了让其他请求也能得到(控制器方法)处理,需要开启mvc的注解驱动

    <!--开启mvc的注解驱动-->
<mvc:annotation-driven></mvc:annotation-driven> <!--
视图控制器(mvc:view-controller):为指定的请求直接设置(逻辑)视图名称,从而实现页面的跳转
path属性:设置要处理的请求路径
view-name属性:设置要跳转到的逻辑视图
-->
<mvc:view-controller path="/" view-name="index"></mvc:view-controller>

6、SpringMVC之视图的更多相关文章

  1. SpringMVC重定向视图RedirectView小分析

    目录 前言 RedirectView介绍 实例讲解 总结 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnbl ...

  2. SpringMvc:视图和视图解析器

    请求处理方法执行完成后,最终返回一个ModelAndView对象,对于返回String,View或ModelMap等类型的处理方法,SpringMvc也会在内部将它们装配成一个ModelAndView ...

  3. SpringMVC自定义视图Excel视图和PDF视图

    SpringMVC自定义视图 Excel视图和PDF视图 SpringMVC杂记(十一) 使用Excel视图 Spring MVC 视图解析器(ViewResolver ) java实现导出excel ...

  4. SpringMVC 多视图解析器配置以及问题

    在SpringMVC模式当中可以通过如下配置来支持多视图解析 <!-- jsp jstl --> <bean id="JSPViewResolver" class ...

  5. SpringMVC——说说视图解析器

    学习SpringMVC——说说视图解析器   各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请 ...

  6. SpringMVC源码分析6:SpringMVC的视图解析原理

    title: SpringMVC源码分析6:SpringMVC的视图解析原理 date: 2018-06-07 11:03:19 tags: - SpringMVC categories: - 后端 ...

  7. Springmvc多视图

    Springmvc多视图 多视图是一个方法可以返回json/xml等格式的数据 第一步:导入xml格式支持的jar包 spring-oxm-3.2.0.RC2.jar 第二步:配置支持多视图 < ...

  8. 学习SpringMVC——说说视图解析器

    各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请求参数篇中都已经领略到了spring mvc注 ...

  9. SpringMVC核心——视图渲染(包含视图解析)问题

    一.本来想说的是返回值处理问题,但在 SpringMVC 中,返回值处理问题的核心就是视图渲染.所以这里标题叫视图渲染问题. 本来想在上一篇文章中对视图解析进行说明的,但是通过源码发现,它应该算到视图 ...

  10. springmvc(六)——视图和视图解析器

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoIAAAGrCAIAAADb2WEhAAAgAElEQVR4nOzdaVhTd78vfF8/z772c9 ...

随机推荐

  1. Anaconda安装Python的seaborn库

      本文介绍在Anaconda的环境中,安装Python语言中,常用的一个绘图库seaborn模块的方法.   seaborn模块是基于Matplotlib的数据可视化库,它提供了一种更简单.更漂亮的 ...

  2. react兄弟之间通信

    写入组件 import React, { Component } from 'react'//下面二个就是兄弟关系的组件 import Cmp1 from '../Child/Cmp1' import ...

  3. webpack配置图片处理

    # 安装 npm i -D url-loader html-loader file-loader # loader配置 module: { rules: [ // 图片处理 { test: /\.(p ...

  4. 剑指Offer-62.二叉搜索树的第k个结点(C++/Java)

    题目: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为4. 分析: 二叉搜索树的中序遍历结果正好是按数值升序排列的结 ...

  5. Java访问权限修饰符(public , private , protected)

    访问权限修饰符包括:public.protected.private和默认修饰符(friendly/包访问权限). 可以修饰在类.字段.方法前面. public:公开权限,所有类都可以访问. prot ...

  6. ABC317题解报告

    我直接从第三题开始讲了. T3 把数组 \(A\) 从大到小排序. 然后从前往后把前 \(q\) 个数加起来,然后判断这 \(q\) 个数的和与 \(d\) 的大小关系,如果大了就变成 \(d\). ...

  7. 夜莺监控 V7 第二个 beta 版本发布,内置集成故障自愈能力,简化部署

    经过一个半月的打磨改进,夜莺监控 V7 第二个 beta 版本发布了,本次发布的主要亮点是内置集成故障自愈能力,简化架构,同时做了其他 19 项改进.一些重要的改进如下: feat: 集成故障自愈的能 ...

  8. 如何生成war包

    pom.xml <packaging>war</packaging> 引入tomcat <dependency> <groupId>org.spring ...

  9. 开源一个常用的树目录和下拉树js组件

    我写的一个常用的树目录组件,需要jquery和font-awesome支持,对于想使用自定义图标的可以重定义 fa样式即可,或者直接更换源码的样式名称. 下载地址:https://github.com ...

  10. Nginx性能调优5招35式不可不知的策略实战

    Nginx是一个高性能的HTTP和反向代理服务器,它在全球范围内被广泛使用,因其高性能.稳定性.丰富的功能以及低资源消耗而受到青睐.今天V哥从5个方面来介绍 Nginx 性能调优的具体策略,希望对兄弟 ...