springMVC国际化
程序员文章站
2022-04-16 11:03:30
...
springMVC 4.0 国际化
一、spring的配置文件:
<!--通过前天传递的参数更改使用语言环境...?locale=zh_CN --> <mvc:interceptors > <bean class = "org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/> </mvc:interceptors > <!--配置语言转换级别,有AcceptHeaderLocaleResolver:通过http header的accept-language域来判断; SessionLocaleResolver:通过本次会话过程中进行语言设定,登录周期内统一使用该设定; CookieLocaleResolver:cookie中保持了前一次语言设定参数,每次根据cookie来设定; FixedLocaleResolver:一直使用固定的locale --> <bean id = "localeResolver" class = "org.springframework.web.servlet.i18n.CookieLocaleResolver" ></bean> <!-- 国际化 用ResourceBundleMessageSource时,bean id 一定要使用messageSource--> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames" value="i18n.language"></property> <property name="cacheSeconds" value="-1"/> </bean>
二、JSP页面
<h1 align="center">${message}</h1> <spring:message code="hello.prompt"></spring:message> ${language}<br/> <a href="/demo/language/test/chinese?locale=zh_CN"> 中文简体</a>| <a href="/demo/language/test/english?locale=en_US">English</a>| <a href="/demo/language/test/chineseTranditional?locale=zh_TW"> 中文繁體</a> <p style="font-size: medium;align-content: center"> <spring:message code="hello.title"></spring:message> </p>
三、后台controller
@Controller @RequestMapping("/language") public class LanguageController { @RequestMapping("/test/{lan}") public String change(@PathVariable String lan,ModelMap modelMap){ modelMap.put("language",lan); return "hello"; } }
四、常见错误
javax.servlet.jsp.JspTagException: No message found under code 'hello.prompt' for locale 'zh_TW' 试着将<bean id="messageResource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">改为<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
上一篇: linux系统引导流程
下一篇: php编程怎么和mysql连接