我创建了SpringMVCwith Tiles项目。
我的控制器返回一个字符串“hello”,它是一个逻辑文件名,我有一个名为hello. jsp的jsp。
在tils. xml中,我应该有一个名为hello的定义,它扩展了定义模板。我的基本定义映射到layout.jsp。
当我添加jspViewResolver时,它会将我带到hello. jsp,但如果我将其注释掉,它会将我带到layout.jsp,它是根据tiles.xml中hello的定义呈现的。
那么,为什么我们不应该将jspViewResolver和tilesViewResolver放在一起呢?
TilesViewResolver
和InternalResourceViewResolver
或UrlBasedViewResolver
的实例实例。一般来说,这意味着ViewResolver
采用给定的视图名称并尝试从中构造URL,URL用于解析视图,而不管视图的实际存在。
取决于Spring版本(Spring
唯一没有真正检查视图存在的实现(目前)它是InternalResourceViewResolver
或普通UrlBasedViewResolver
实例。使用时,使其成为视图链解析器中的最后一个(最高order
属性)。
当您想将普通JSP与Tiles结合时,实际上应该可以通过给TilesViewResolver
一个1的顺序和InternalResourceViewResolver
一个高于1的顺序(例如2)。
在早期版本(Spring