根据域名来判断用户语言:
1.定义一个对象;SelfLocaleResolver
1. public class SelfLocaleResolver extends
2. @Override
3. public
4. if ("127.0.0.1".equalsIgnoreCase(request.getRemoteHost())) {
5. return new Locale("zh");
6. else
7. return new Locale("en");
8. }
9. }
10.
11. @Override
12. public void
13. }
14.
15. }
这里是表示 访问的域名是 127.0.0.1 则显示为中文 访问其它为英文
2.配置文件中加入
1. <bean id="localeResolver" class="com.xxx.SelfLocaleResolver"/>
3.结束
LocaleChangeInterceptor的源码:
LocaleChangeInterceptor 的作用:URL中传递一个参数来修改用户语言。http://localhost:8080?change=en
1. public class LocaleChangeInterceptor extends
2.
3.
4. @Override
5. public boolean
6. throws
7. //获取用户传递的参数
8. this.paramName);
9. if (newLocale != null) {
10. //localeResolver 为在配置文件中配置的对象
11. LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
12. if (localeResolver == null) {
13. throw new IllegalStateException("No LocaleResolver found: not in a DispatcherServlet request?");
14. }
15. //cookie和session存储的时候才可以修改。
16. localeResolver.setLocale(request, response, StringUtils.parseLocaleString(newLocale));
17. }
18. return true;
19. }
20.
21. }
附件中有源码。
- springi18n.zip (27.5 KB)
- 下载次数: 2