弹簧和视图解析器

时间:2010-03-02 22:13:46

标签: java spring spring-mvc

是否可以在同一个Web应用程序中一起使用InternalResourceViewResolver和BeanNameViewResolver?

我的意思是InternalResourceViewResolver来解析我的jsp。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>

而不是BeanNameViewResolver来解析我的excel(我需要传递url)。

再见。 感谢

2 个答案:

答案 0 :(得分:9)

你可以在你的上下文中拥有尽可能多的视图解析器,Spring将逐个遍历它们,直到它解析一个解析视图。

但有一个警告:

  

注意:链接ViewResolvers时,   总是InternalResourceViewResolver   需要是最后的,因为它会尝试   解决任何视图名称,无论如何   是否是底层资源   实际存在。

这是servlet API的“缺陷”,因为InternalResourceViewResolver在实际尝试之前无法知道资源是否存在。

因此,请确保在BeanNameViewResolver之前定义InternalResourceViewResolver,或在每个order上明确指定{{1}}属性。

答案 1 :(得分:3)

是的,您可以组合多个解析器。 Spring迭代它们并使用能够解析给定名称的第一个解析器。您还可以在解析器中设置order属性以指定迭代顺序。

相关问题