ResourceBundleViewResolver 是用于本地化映射的view解析器,其工作原理是通过properties文件来达到映射的目的
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model
<annotation-driven />
-->
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory
<resources mapping="/resources/**" location="/resources/" />
-->
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean id="bundleViewResolver" name="bundleViewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<!--
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
-->
<!-- 指定了映射文件的basename, properties文件的命名格式就必须为views_xx_xx.properties 例如views_zh_CN.properties 如果不指定本地化properties文件,默认文件梶 views.properties -->
<beans:property name="basename" value="views"></beans:property>
</beans:bean>
<beans:bean id="homeController" class="com.mvc.controllers.HomeController">
<beans:property name="user" ref="user"></beans:property>
</beans:bean>
<beans:bean id="simpleUrlMapingHandler" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<beans:property name="mappings">
<beans:value>
/home.do=homeController
/index.do=homeController
</beans:value>
</beans:property>
</beans:bean>
<beans:bean id="internalPathMethodNameResolver"
class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver">
<!--
<beans:property name="suffix" value="Handler"/>
-->
</beans:bean>
<!-- Imports user-defined @Controller beans that process client requests
<beans:import resource="controllers.xml" />
-->
</beans:beans>
下面是views.properties的文件,必须在web应用的classpath下。
spring 3的用法为
index.(class)=org.springframework.web.servlet.view.JstlView
index.url=WEB-INF/views/home.jsp
在pro spring 2.5的实例中使用的用法为
index.class=org.springframework.web.servlet.view.JstlView
index.url=WEB-INF/views/home.jsp
接着是controller的代码
package com.mvc.controllers;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import com.mvc.entity.User;
//@Controller
public class HomeController extends MultiActionController {
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.AbstractController#handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
private User user;
public User getUser() {
return user;
}
// @Autowired
public void setUser(User user) {
this.user = user;
}
// @RequestMapping(value="/", method=RequestMethod.GET)
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response){
//System.out.println(user.getName());
if(user != null){
System.out.println("true");
System.out.println(user.getName());
}
System.out.println("home");
ModelAndView mav = new ModelAndView();
mav.setViewName("index");
return mav;
}
public ModelAndView index (HttpServletRequest request,
HttpServletResponse response){
System.out.println("index");
ModelAndView mav = new ModelAndView("index","index", null);
return mav;
}
}
本文介绍如何使用Spring MVC中的ResourceBundleViewResolver进行视图解析,实现国际化映射。通过配置XML文件和properties文件,可以灵活地进行页面跳转,并支持多语言环境。
687

被折叠的 条评论
为什么被折叠?



