我是靠谱客的博主 甜美舞蹈,最近开发中收集的这篇文章主要介绍(续)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());方法进行调用

processDispatchResult:执行我们的转发结果

 

然后F9跳出断点

就能够获取到ModelAndViw

ModelMap   Map  同理 

二  SpringMVC的视图之 ThymeleafView

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

拓展:

取消断点

 

1 . 新建控制层 

 2 . index.html

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

 

3   TestViewController

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 下一步

 打断点 

render  渲染

 F7  进行render方法

3次  F8

F8 下一步

在F8  下一步

 F8 在下一步

F9 跳出断点

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

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

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

1 .index.html

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

2 .  TestViewController

    @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

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

2 . TestViewController

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

 跟源码

 F9  跳过

F9

进行方法F7

4次  F8  下一步

 2次F8

F9 跳过 

五  视图控制器view-controller

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

1.springmvc.xml


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

</beans>

 2 .   ProtalController

 

 3 .  测试

 

解决办法  开启MVC注解驱动

    <!--开启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)一 .观察源码之验证控制方法的返回值为ModelAndView二  SpringMVC的视图之 ThymeleafView三 SpringMVC的视图之 转发视图    用得不多  了解1 .index.html看源码四  SpringMVC的视图 之重定向视图五  视图控制器view-controller所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部