概述
目录
一 .观察源码之验证控制方法的返回值为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 . 测试
一 .观察源码之验证控制方法的返回值为ModelAndView
1 . 找到TestScopeController方法 打断点
2 . 测试
在方法桟中 越往上 说明与要执行的方法 断点所在的位置越近 越往下 说明与断点所在的位置越远 当前之所以走到这 就是从方法桟的最底层 最下面的一行 一步一步有往上调用 最终才调用到
我们当前的testMAV()方法 是由DispatcherServlet 1061行调用的 因为他是在方法桟中的 当前 的方法桟就是直接或间接 调用断点所在位置的方法 方法的返回值是mv
点击F9跳出断点 跳转到光标所在的那一行
在接下我们测试其他功能
F9 跳出断点
所以每一个控制器方法 都是通过mv = ha.handle(processedRequest, response, mappedHandler.getHandler());方法进行调用
processDispatchResult:执行我们的转发结果
然后F9跳出断点
就能够获取到ModelAndViw
ModelMap Map 同理
二 SpringMVC的视图之 ThymeleafView
拓展:
取消断点
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的视图之 转发视图 用得不多 了解
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的视图 之重定向视图
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
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>
最后
以上就是甜美舞蹈为你收集整理的(续)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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复