如您所说,您不能将它们链接在一起。两者的javadoc都明确指出,它们都必须都在解析程序链的末尾。
我建议如果您确实需要使用这些集合,那么您可以编写一个简单的ViewResolver自定义实现,该实现采用视图名称,并确定要委派给两个“真实”视图解析器中的哪个。假设您可以根据视图名称确定要调用哪个解析器。
因此,您需要像这样定义自定义ViewResolver:
public class MyViewResolver implements ViewResolver { private ViewResolver tilesResolver; private ViewResolver jspResolver; public void setJspResolver(ViewResolver jspResolver) { this.jspResolver = jspResolver; } public void setTilesResolver(ViewResolver tilesResolver) { this.tilesResolver = tilesResolver; } public View resolveViewName(String viewName, Locale locale) throws Exception { if (isTilesView(viewName)) { return tilesResolver.resolveViewName(viewName, locale); } else { return jspResolver.resolveViewName(viewName, locale); } } private boolean isTilesView(String viewName) { ..... }}您需要实现isTilesView方法来确定要委派给哪个解析器。
在XML配置中,定义这个新的视图解析器,并确保它出现 在 其他视图解析器 之前 。
<bean > <property name="tilesResolver" ref="tilesViewResolver"/> <property name="jspResolver" ref="viewResolver"/></bean>



