InternalResourceViewResolver 与 UrlBasedViewResolver 之间有什么区别

2022-09-01 21:01:27

我刚开始使用Spring。我遇到了很多教程。我看到使用的例子比.我查看了Spring文档,但我无法弄清楚使用其中一个或另一个的好处。有人可以提供一些解释吗?InternalResourceViewResolverUrlBasedViewResolver


答案 1

InternalResourceViewResolverUrlBasedViewResolver的一个方便的子类。

JavaDoc 描述了一些添加的属性,这些属性在某些情况下可能很有用:InternalResourceViewResolver

UrlBasedViewResolver的便捷子类,支持InternerResourceView(即Servlets和JSP)和子类,如JstlView。

AlwaysInclude:控制是完成转发还是包含。

ExposeContextBeansAsAttributes:允许上下文中的所有 Bean 都可以用作请求属性,这意味着它们可以从 JSP 中的 EL 引用。

ExposedContextBeanNames:如果为 non-null,则指定将公开的 Bean 列表,而不是所有 Bean。

来源:春季论坛:春季问答论坛


答案 2

Spring支持广泛的视图技术。ViewResolvers 在这里将任何已知的受支持的视图技术插入到您的应用程序中。

UrlBasedViewResolver是一个简单的视图解析器,它通过将模式与相应的文件名相匹配来简单地解析不同技术的视图。URL

UrlBasedViewResolver在这里支持所有类型为“AbstractUrlBasedView”的视图技术。

AbstractJasperReportsView、 、 、 、 、 、 是 的已知子类。AbstractPdfStamperViewAbstractTemplateViewInternalResourceViewRedirectViewTilesViewXsltViewAbstractUrlBasedView

因此,当您使用时,您可以使用 的任何一个子类作为视图技术的类型(仅通过设置相应的 viewClass)。UrlBasedViewResolverAbstractUrlBasedView

内部资源查看解决方案是 的子类。UrlBasedViewResolver

但是当你使用时(这是一个方便的子类),你只能使用类型的技术作为你的视图技术。InternalResourceViewResolverUrlBasedViewResolverInternalResourceView

我认为这回答了你的问题。


推荐