# Spring MVC `ResourceBundleViewResolver`配置示例

> [https://howtodoinjava.com/spring-mvc/spring-mvc-resourcebundleviewresolver-configuration-example/](https://howtodoinjava.com/spring-mvc/spring-mvc-resourcebundleviewresolver-configuration-example/)

在先前的示例中，我们了解了[`XmlViewResolver`](https://howtodoinjava.com/best-practices/spring-mvc-xmlviewresolver-configuration-example/)和[`InternalResourceViewResolver`](https://howtodoinjava.com/spring/spring-mvc/spring-mvc-internalresourceviewresolver-configuration-example/)视图模板。 在这篇文章中，我们将学习[`ResourceBundleViewResolver`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/view/ResourceBundleViewResolver.html)模板。 `ResourceBundleViewResolver`从类路径根目录中的资源包中加载视图 bean。 请注意，`ResourceBundleViewResolver`还可以利用资源包功能从不同的资源包中为不同的区域加载视图 Bean（这对于其他两个视图解析器是不可能的）。

默认情况下，`ResourceBundleViewResolver`从存在的“ `views.properties`”文件中将视图名称加载到类路径中，但是可以通过**基本名称**属性覆盖此位置。

```java
<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    <property name="basename" value="views" />
</bean>

```

在`views.properties`资源包中，您可以以属性的格式声明视图 bean，并且它们的声明等效于[`XmlViewResolver`示例](https://howtodoinjava.com/best-practices/spring-mvc-xmlviewresolver-configuration-example/)中看到的 XML bean 声明。

```java
<!--beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="home" class="org.springframework.web.servlet.view.JstlView">
        <property name="url" value="/WEB-INF/jsp/home.jsp" />
    </bean>

    <bean id="admin/home" class="org.springframework.web.servlet.view.JstlView">
        <property name="url" value="/WEB-INF/jsp/admin/home.jsp" />
    </bean>

    <bean id="logOffRedirect" class="org.springframework.web.servlet.view.RedirectView">
        <property name="url" value="home" />
    </bean>
</beans-->

//Equivalent resource bundle properites

home.(class)=org.springframework.web.servlet.view.JstlView
home.url=/WEB-INF/jsp/home.jsp

adminHome.(class)=org.springframework.web.servlet.view.JstlView
adminHome.url=/WEB-INF/jsp/admin/home.jsp

logOffRedirect.(class)=org.springframework.web.servlet.view.RedirectView
logOffRedirect.url=home

```

> 通过上述配置，当控制器返回逻辑视图名称`home`时，`ResourceBundleViewResolver`将在`views.properties`文件中找到以`home`开头的密钥，并将相应视图的 URL 返回到[`DispatcherServlet`](https://howtodoinjava.com/spring/spring-mvc/spring-mvc-hello-world-example/)，即`/WEB-INF/jsp/home.jsp`。

如果有什么需要更多的解释的话，请问我。

**祝您学习愉快！**