SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户。
若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置Thymeleaf的视图解析器,由此视图解析器解析之后所得到的ThymeleafView。

一、ThymeleafView
视图名称没有任何前缀
@RequestMapping("/test/view/thyeleaf")
public String testView() {
return "hello";
}
查看源码,返回视图类型为

二、转发视图
当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"forward:"去掉,剩余部分作为最终路径通过转发的方式实现跳转。
@RequestMapping("/test/view/forward")
public String testView2() {
return "forward:/hello";
}
返回视图类型如下所示:
一般不用,因为还需要配置新的视图解析器。
三、重定向视图
当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"redirect:"去掉,剩余部分作为最终路径通过重定向的方式实现跳转。
@RequestMapping("/testRedirect")
public String testRedirect(){
return "redirect:/testHello";
}
重定向之后,又会利用的ThymeleafViewResolver。
那种视图根据返回的视图名称决定。

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

2679

被折叠的 条评论
为什么被折叠?



