Spring MVC ResourceBundleViewResolver example

In Spring MVC, ResourceBundleViewResolver is used to resolve “view named” based on view beans in “.properties” file.

By default, ResourceBundleViewResolver will loads the view beans from file views.properties, which located at the root of the project class path. However, this location can be overridden through the “basename” property, for example,

<beans ...>
    <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
        <property name="basename" value="spring-views" />
    </bean>
</beans>

In above case, it loads the view beans from “spring-views.properties“, which located at the root of the project class path.

Note
The ResourceBundleViewResolver has the ability to load view beans from different resource bundles for different locales, but this use case is rarely required.

ResourceBundleViewResolver example to show you how it works :

1. Controller

A controller class, return a view, named “WelcomePage“.

//...
public class WelcomeController extends AbstractController{

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        ModelAndView model = new ModelAndView("WelcomePage");

        return model;
    }
}

2. ResourceBundleViewResolver

Register ResourceBundleViewResolver in the Spring’s bean configuration file, change the default view beans location to “spring-views.properties“.

<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-2.5.xsd">

  <bean 
  class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />

    <!-- Register the bean -->
    <bean class="com.mkyong.common.controller.WelcomeController" />

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

</beans>

3. View beans

Declare each view bean as a normal resource bundle style (key & message), where

  • “WelcomePage” is the view name to match.
  • “.(class)” is the type of view.
    • “.url” is the view’s URL location.

File : spring-views.properties

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

Note
Put this “spring-views.properties” file on your project class path.

How it works ?

When view name “WelcomPage” is returned by controller, the ResourceBundleViewResolver will find the key start with “WelcomPage” in “spring-views.properties” file, and return the corresponds view’s URL “/WEB-INF/pages/WelcomPage.jsp” back to the DispatcherServlet.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值