springmvc多语言支持

四种语言解析器

AcceptHeaderLocaleResolver

       它是SpringMVC默认的语言解析方式,它解析的是客户端请求头里的Accept-Language。

CookieLocaleResolver

       它是把语言设定放到客户端的cookie中,每次请求时进行解析。      修改方式:

LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
if (localeResolver instanceof CookieLocaleResolver) {
    localeResolver.setLocale(request, response, locale);
}

SessionLocaleResolver

       它把语言设定到服务器的session里,修改方式如下:

request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale);

FixedLocaleResolver

这是一种固定语言的解析器.

一般工具类

@Component
public class LocaleMessageSourceService {
    @Resource
    private MessageSource messageSource;

    public String getMessage(String code, String defaultMessage) {
        return getMessage(code, null, defaultMessage);
    }

    public String getMessage(String code, String defaultMessage, Locale locale) {
        return getMessage(code, null, defaultMessage, locale);
    }

    public String getMessage(String code, Locale locale) {
        return getMessage(code, null, "", locale);
    }


    public String getMessage(String code) {
        return getMessage(code, new Object[]{});
    }

    public String getMessage(String code, Object[] args) {
        return getMessage(code, args, "");
    }

    public String getMessage(String code, Object[] args, Locale locale) {
        return getMessage(code, args, "", locale);
    }

    public String getMessage(String code, Object[] args, String defaultMessage) {
        Locale locale = LocaleContextHolder.getLocale();
        return getMessage(code, args, defaultMessage, locale);
    }

    public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
        return messageSource.getMessage(code, args, defaultMessage, locale);
    }
}

初始化基本流程

当我声明一个解析器 SessionLocaleResolver时,DispacherServlet在初始化LocaleResover设置到本地

在处理请求时,下面两步分别是获取LocalContex 和设置到LocaleContextHolder中

来看获取部分,这里使用前面从上下文得到的解析器处理,就是SessionLocaleResolver:

它就是SessionLocaleResolver,它的resolveLocale函数有两种方式

方式1是得到 SessionLocaleResolver.class.getName() + ".LOCALE"; 的对象

方式2是使用默认设定的语言

所以SessionLocaleResolver要改语言使用如下方式。

 request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统特色: 1.一个系统在一个域名空间上,制作多个网站,每个网站支持简繁英等语言 2.静态页面使得网站在巨大访问量面前变得游刃有余 3.内置中英繁等语言,可扩展成多国语言 4.内置简繁转换功能,支持全站数据繁简转换 5.网站搜索/数据备份/搜索引荐优化/文件管理... 6.NET平台能够保证系统稳定及安全,并且效率更高 7.集成RSS订阅,网站地图,使得搜索引荐更加青睐您的网站 8.公告,留言,链接,招聘,搜索都是基于ajax技术,更加人性化。 9.可批量上传产品,从excel上导入产品资料 基本功能 一、系统管理:管理员管理,可以新增管理员及修改管理员密码; 数据库备份,为保证您的数据安全本系统采用了数据库备份功能; 二、企业信息:可增加修改修改企业的各类信息 三、产品管理:产品类别无限分类,产品添加,修改,审核,管理。 四、下载中心:下载类别无限分类,下载添加,修改,审核,管理。 五、新闻管理:新闻类别无限分类,新闻添加,修改,审核,管理。 六、人才管理:发布修改招聘信息,人才策略栏目管理,应聘管理。 七、留言管理:管理信息反馈及回复 八、会员管理:查看修改删除会员资料 九、调查管理:发布修改新调查。 十、友情链接:新增修改友情链接,支持图片友情链接。 十一、模板管理:可以自己选定现存的模板也可以导入官方的模板。 十二、在线客服:支持QQ,MSN,方便与客户联系 十三、前台菜单支持一,二,三级,很方便管理

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值