栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC学习笔记(六)—— SpringMVC的视图

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC学习笔记(六)—— SpringMVC的视图

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

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

2、代码演示:

【test_view.html】

测试thymeleafView

【ViewController.java】

@Controller
public class ViewController {

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

6.3、转发视图

1、SpringMVC中默认的转发视图是InternalResourceView

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

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

3、代码演示:

【test_view.html】

测试InternalResourceView

【ViewController.java】

@Controller
public class ViewController {
    @RequestMapping("/testForward")
    public String testForward() {
        return "forward:/testThymeleafView";
    }
}

注意:代码执行过程中会创建两次视图:

  • 第一次视图(InternalResourceView视图):先解析"forward:/testThymeleafView",把前缀去掉,剩余的"/testThymeleafView"需要转发
  • 第二次视图(ThymeleafView视图):由于"/testThymeleafView"也是一次请求,所以此时创建ThymeleafView来实现转发。
6.4、重定向视图

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

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

转发与重定向的区别:

1、浏览器请求次数:

  • 转发是一次请求,虽然转发也可以说是两次请求,第一次是浏览器发送,第二次发送是在服务器内部。此处说转发是一次请求是指浏览器是一次请求。
  • 重定向是两次请求。

2、访问WEB-INF下的资源

  • 转发能够访问WEB-INF下的资源。
  • 重定向不能访问WEB-INF下的资源,因为WEB-INF下的资源具有安全性,具有隐藏性,只能通过服务器内部来访问,不能通过浏览器访问。

3、跨域

  • 转发不能跨域,转发是发生在服务器内部的,则只能访问服务器内部的资源。
  • 重定向可以跨域,重定向是浏览器发送的两次请求,通过浏览器可以访问任何资源。

3、代码演示:

【test_view.html】

测试RedirectView

【ViewController.java】

@Controller
public class ViewController {
    @RequestMapping("testRedirect")
    public String testRedirect() {
        return "redirect:/testThymeleafView";
    }
}

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

6.5、视图控制器view-controller

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

2、代码演示:

【springMVC.xml】



注意:

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号