弹簧和视图解析器

and*_*007 5 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"/>
Run Code Online (Sandbox Code Playgroud)

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

再见.谢谢

ska*_*man 9

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

但有一个重要的警告:

注意:链接时ViewResolvers, InternalResourceViewResolver总是需要最后,因为它将尝试解析任何视图名称,无论底层资源是否确实存在.

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

因此,请确保在BeanNameViewResolver之前定义InternalResourceViewResolver,或者order在每个上明确指定属性.


axt*_*avt 3

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