SpringMVC的视图~

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

ThymeleafView:

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

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

SpringMVC的视图~_第1张图片

转发视图:

SpringMVC中默认的转发视图是InternalResourceView,SpringMVC中创建转发视图的情况:

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

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

SpringMVC的视图~_第2张图片

重定向视图:

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

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

例如:“redirect:/”,“redirect:/employee”

SpringMVC的视图~_第3张图片

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

视图控制器:

视图控制器能为当前的请求直接设置请求名称实现页面跳转

第一步:创建页面,View.html

DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Viewtitle>
head>
<body>
<h1>欢迎使用视图控制器!h1>
<a th:href="@{/test/view/thymeleaf}">测试Thymeleaf视图控制器a>
body>
html>

第二步:在XML文件中创建视图控制器,如下所示:

  <mvc:view-controller path="/" view-name="index">mvc:view-controller>

第三步:创建要跳转的页面,Jump.html

DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Jumptitle>
head>
<body>
<h1>页面跳转成功!h1>
body>
html>

第四步:创建控制器方法

package Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestViewController {
    @RequestMapping("/test/view/thymeleaf")
    public String thymeleafTesting() {
        return "Jump";
    }
}

运行,浏览器如下所示

SpringMVC的视图~_第4张图片

这里出现404的原因是当SpringMVC中设置任何一个view-controller时,其他控制器中的请求映射将全部失效,而解决方法为在XML文件中再配置一个 标签,该标签的作用是开启mvc的注解驱动

再次进行项目部署,运行结果如下所示:

在这里插入图片描述

你可能感兴趣的:(SSM框架,数据库,服务器,运维,后端,开发语言,intellij-idea)