在Spring MVC中, ResourceBundleViewResolver用于基于“ .properties”文件中的视图bean来解析“已命名视图”。
默认情况下, ResourceBundleViewResolver
将从位于项目类路径根目录下的views.properties文件中加载视图bean。 但是,可以通过“ basename ”属性覆盖此位置,例如,
<beans ...>
<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="spring-views" />
</bean>
</beans>
在上述情况下,它将从位于项目类路径根目录的“ spring-views.properties ”加载视图bean。
注意
ResourceBundleViewResolver
能够从不同的语言环境的不同资源包中加载视图bean,但是很少需要这种用例。
ResourceBundleViewResolver示例向您展示其工作方式:
1.控制器
控制器类,返回一个名为“ 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
在Spring的bean配置文件中注册ResourceBundleViewResolver
,将默认的view bean位置更改为“ 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.查看豆
将每个视图bean声明为常规资源束样式(键和消息),其中
- “ WelcomePage ”是要匹配的视图名称。
- “ 。(class) ”是视图的类型。
- “ .url ”是视图的URL位置。
文件:spring-views.properties
WelcomePage.(class)=org.springframework.web.servlet.view.JstlView
WelcomePage.url=/WEB-INF/pages/WelcomePage.jsp
注意
将此“spring-views.properties
”文件放在项目类路径中。
怎么运行的 ?
当控制器返回视图名称“ WelcomPage ”时,ResourceBundleViewResolver将在“ spring-views.properties ”文件中找到以“ WelcomPage ”开头的键,并返回对应视图的URL“ /WEB-INF/pages/WelcomPage.jsp ”回到DispatcherServlet。
下载源代码
下载它– SpringMVC-ResourceBundleViewResolver-Example.zip (7 KB)
参考
翻译自: https://mkyong.com/spring-mvc/spring-mvc-resourcebundleviewresolver-example/