您的位置:首页 > 编程语言 > Java开发

Spring MVC 1 资源文件 国际化

2013-10-04 19:51 267 查看
Spring MVC工程中,习惯于把视图文件(例如jsp)放在WEB-INF目录下。

静态资源引用
要引用静态资源,Spring MVC 提供了2种方式
1 <mvc:default-servlet-handler /> : 会将请求静态资源的URL,提交到Web容器处理。
2 <mvc:resources>: 由Spring MVC 自己映射静态资源

<mvc:resources mapping="/resources/**" location= "/static/,
classpath:/META-INF/web-resources/" />
jsp中可以这样引用
[align=left]<%@ taglib prefix="c" uri= "http://java.sun.com/jsp/jstl/core" %>[/align]
[align=left]<c:set var= "ctx" value ="${pageContext.request.contextPath} "/>[/align]

[align=left] <head>[/align]
<link href= "${ctx}/resources/styles/default.css" type="text/css" rel="stylesheet" />

[align=left]</head>[/align]

国际化
Spring MVC 中的国际化由localeResolver定义,Spring MVC 会在上下文中查找名为localeResolver 的bean,找到后使用它来处理国际化。

默认定义在 DispatcherServlet.properties中

[align=left]org.springframework.web.servlet.LocaleResolver= org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver[/align]

Spring 提供了3个Resolver和1个动态拦截器:

AcceptHeaderLocaleResolver:根据HTTP报文头的Accept-Language参数确定

CookieLocalResolver:根据Cookie值确定

SessionLocalResolver:根据Session值确定

LocaleChangeInterceptor:从请求参数中获得,默认获得locale参数值

常见用法是 LocaleChangeInterceptor CookieLocalResolver 配合使用:

<!-- Configures Handler Interceptors -->
<mvc:interceptors>
<!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>

<!-- Saves a locale change using a cookie -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />

<!-- Application Message Bundle -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/messages/messages" />
<property name="cacheSeconds" value="0" />
<property name="fallbackToSystemLocale" value="true" />
</bean>

JSP中可以:

<spring:message code="welcome.title" var="title"/>

${title}

<a href="?locale=en_us">us</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: