我是靠谱客的博主 甜美舞蹈,这篇文章主要介绍(续)SSM整合之springmvc笔记(SpringMVC的视图)(P139-143)一 .观察源码之验证控制方法的返回值为ModelAndView二  SpringMVC的视图之 ThymeleafView三 SpringMVC的视图之 转发视图    用得不多  了解1 .index.html看源码四  SpringMVC的视图 之重定向视图五  视图控制器view-controller,现在分享给大家,希望可以做个参考。

目录

一 .观察源码之验证控制方法的返回值为ModelAndView

1 . 找到TestScopeController方法   打断点

2 . 测试

二  SpringMVC的视图之 ThymeleafView

1 . 新建控制层 

 2 . index.html

3   TestViewController

三 SpringMVC的视图之 转发视图    用得不多  了解

1 .index.html

2 .  TestViewController

四  SpringMVC的视图 之重定向视图

1 .index.html

2 . TestViewController

五  视图控制器view-controller

1.springmvc.xml

 2 .   ProtalController

 3 .  测试


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

一 .观察源码之验证控制方法的返回值为ModelAndView

1 . 找到TestScopeController方法   打断点

 

2 . 测试

在方法桟中  越往上  说明与要执行的方法  断点所在的位置越近   越往下 说明与断点所在的位置越远  当前之所以走到这   就是从方法桟的最底层  最下面的一行   一步一步有往上调用  最终才调用到 

 我们当前的testMAV()方法 是由DispatcherServlet    1061行调用的 因为他是在方法桟中的  当前 的方法桟就是直接或间接  调用断点所在位置的方法  方法的返回值是mv

点击F9跳出断点   跳转到光标所在的那一行 

 

 在接下我们测试其他功能

F9 跳出断点

 所以每一个控制器方法  都是通过mv = ha.handle(processedRequest, response, mappedHandler.getHandler());方法进行调用

复制代码
1
processDispatchResult:执行我们的转发结果

 

然后F9跳出断点

就能够获取到ModelAndViw

ModelMap   Map  同理 

二  SpringMVC的视图之 ThymeleafView

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

拓展:

取消断点

 

1 . 新建控制层 

 2 . index.html

复制代码
1
<a th:href="@{/test/view/thymeleaf}">测试SpringMVC的视图ThymeleafView</a><br>

 

3   TestViewController

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.atguigu.controller; @Controller public class TestViewController { @RequestMapping("/test/view/thymeleaf") public String testThymeleafView(){ return "success"; } }

 查看源码  打断点

重新部暑

3次F9  才能显示首页

 这行代码是用来调用控制器方法的  返回值就是ModelAndViw

F8 下一步

F9  跳过断点

F7 进行processDispatchResult方法

F8 下一步

在F8  在下一步

F8 下一步

 打断点 

复制代码
1
render 渲染

 F7  进行render方法

3次  F8

F8 下一步

在F8  下一步

 F8 在下一步

F9 跳出断点

查看源码得出结论:当我们视图名称 没有任何前缀的时候  他创建的就是ThymeleafView

SpringMVC的视图之 转发视图    用得不多  了解

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

1 .index.html

复制代码
1
<a th:href="@{/test/view/forward}">测试SpringMVC的视图InternalResourceView</a><br>

2 .  TestViewController

复制代码
1
2
3
4
@RequestMapping("/test/view/forward") public String testInternalResourceView(){ return "forward:/test/model"; }

看源码

3次  F9 跳过

F9  跳过

F9 跳过

 F9 跳过

进入render方法   F7

3次 F8

3次 F8

F9  跳过

 在跳过2次 F9

F9 跳过

四  SpringMVC的视图 之重定向视图

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

1 .index.html

复制代码
1
<a th:href="@{/test/view/redirect}">测试SpringMVC的视图RedirectView</a><br>

2 . TestViewController

复制代码
1
2
3
4
@RequestMapping("/test/view/redirect") public String testRedirectView(){ return "redirect:/test/model"; }
复制代码
1

 跟源码

 F9  跳过

F9

进行方法F7

4次  F8  下一步

 2次F8

F9 跳过 

五  视图控制器view-controller

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

1.springmvc.xml

复制代码
1
2
3
4
5
6
7
8
9
10
11
<!-- 视图控制器:为当前的请求直接设置视图名称实现页面跳转 若设置视图控制器,则只有视图控制器所设置的请求会被处理,其他的请求将全部404 此时必须在配置一个标签:<mvc:annotation-driven /> path:设置处理的请求地址 view-name:设置请求地址所对应的视图名称 --> <mvc:view-controller path="/" view-name="index"></mvc:view-controller> </beans>

 2 .   ProtalController

 

 3 .  测试

 

解决办法  开启MVC注解驱动

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
<!--开启mvc的注解驱动--> <mvc:annotation-driven /> <!-- 视图控制器:为当前的请求直接设置视图名称实现页面跳转 若设置视图控制器,则只有视图控制器所设置的请求会被处理,其他的请求将全部404 此时必须在配置一个标签:<mvc:annotation-driven /> path:设置处理的请求地址 view-name:设置请求地址所对应的视图名称 --> <mvc:view-controller path="/" view-name="index"></mvc:view-controller> </beans>

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

 

最后

以上就是甜美舞蹈最近收集整理的关于(续)SSM整合之springmvc笔记(SpringMVC的视图)(P139-143)一 .观察源码之验证控制方法的返回值为ModelAndView二  SpringMVC的视图之 ThymeleafView三 SpringMVC的视图之 转发视图    用得不多  了解1 .index.html看源码四  SpringMVC的视图 之重定向视图五  视图控制器view-controller的全部内容,更多相关(续)SSM整合之springmvc笔记(SpringMVC的视图)(P139-143)一内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部