springmvc的视图

文章目录

6、springmvc的视图

SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户,SpringMVC视图的种类很多,默认有转发视图和重定向视图

当工程引入jstl的依赖,转发视图会自动转换为JstlView ,若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后所得到的是ThymeleafView

6.1、ThymeleafView

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

6.2、转发视图

**SpringMVC中默认的转发视图是InternalResourceView **

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

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

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

html 复制代码
<a th:href="@{/test/view/forward}">测试SpringMVC的视图InternalResourceView </a>
java 复制代码
@RequestMapping("/testmodel")
public String testmodel(Model model){
    //org.springframework.validation.support.BindingAwareModelMap
    System.out.println(model.getClass().getName());
    model.addAttribute("testReqeustScope","hello,Model");
    return "success";
}



@RequestMapping("/test/view/forward")
public String testInternalResourceView(){
    return "forward:/testmodel";
}
html 复制代码
<p th:text="${testReqeustScope}"></p>

6.3、重定向视图

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

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

例如"redirect:/","redirect:/employee"

注:

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

6.4、视图控制器view-contronller

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

xml 复制代码
<mvc:view-controller path="/" view-name="index"></mvc:view-controller>

注:

当springmvc中设置任何一个view-controller时,其它控制器中的请求映射将全部失效,

此时需要再SpringMVC的核心配置文件中开启mvc的注解驱动

xml 复制代码
*<!--**开启注解驱动**--> *  <mvc:annotation-driven></mvc:annotation-driven>
```xml
*<!--**开启注解驱动**--> *  <mvc:annotation-driven></mvc:annotation-driven>
相关推荐
弗拉唐33 分钟前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
sun00770034 分钟前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
oi771 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
少说多做3431 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀1 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
蓝黑20202 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深2 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
shuangrenlong2 小时前
slice介绍slice查看器
java·ubuntu