资讯专栏INFORMATION COLUMN

Spring boot + beetl + i18n国际化处理

zebrayoung / 1892人阅读

摘要:搭配慢慢开始火起来的模板配置国际化首先需要添加配置设置拦截器国际化切换拦截器国际化切换拦截器国际化处理器国际化处理器设置默认区域然后自定义配置注册全局共享变量注册国家化函数然后配置国际化函数最后配置资源文件这个资源文件路径也是配出来的,不多

Spring boot 搭配慢慢开始火起来的 beetl 模板 配置国际化

首先需要添加WebMvcConfigurer配置

    /**
     * 设置拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }
    
   /**
     * 国际化切换拦截器
     * 
     * @return 国际化切换拦截器
     */
    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
        interceptor.setParamName("lang");
        return interceptor;
    }

    /**
     * 国际化处理器
     * 
     * @return 国际化处理器
     */
    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        //设置默认区域,
        slr.setDefaultLocale(Locale.CHINA);
        return slr;
    }

然后自定义配置beetl

...
    @Autowired
    private WebApplicationContext wac;

    @Bean
    public BeetlTemplateCustomize beetlTemplateCustomize() {
        return new BeetlTemplateCustomize() {
            public void customize(GroupTemplate groupTemplate) {
                // 注册全局共享变量
                Map sharedVars = new HashMap();
                groupTemplate.setSharedVars(sharedVars);

                // 注册国家化函数
                groupTemplate.registerFunction("i18n", new I18nFunction(wac));
            }
        };
    }

然后配置i18n国际化函数

public class I18nFunction implements Function {

    private WebApplicationContext wac;

    public I18nFunction(WebApplicationContext wac) {
        this.wac = wac;
    }

    @Override
    public Object call(Object[] obj, Context context) {
        HttpServletRequest request = (HttpServletRequest) context.getGlobal(WebVariable.REQUEST);
        RequestContext requestContext = new RequestContext(request);
        String message = requestContext.getMessage((String) obj[0]);
        return message;
    }

}

最后配置资源文件

这个资源文件路径也是配出来的,不多介绍了......

测试:
在模板中添加${i18n("messageCode")} , 在url参数中添加lang=en 或者 lang=zh-CN

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77546.html

相关文章

  • 自己动手在Spring-Boot上加强际化功能

    摘要:还设置一个拦截器来拦截国际化语言的变化。修改启动类拦截器现在我们再运行一下看看效果,看到每个链接都显示的他们对应的国际化信息里的内容。 前言 公司将项目由Struts2转到Springmvc了,由于公司业务是境外服务,所以对国际化功能需求很高。Struts2自带的国际化功能相对Springmvc来说更加完善,不过spring很大的特性就是可定定制化性强,所以在公司项目移植的到Sprin...

    gecko23 评论0 收藏0
  • spring boot 之旅 - 集成模板引擎beetl

    摘要:之旅系统环境新建项目使用开发工具直接在官网创建参考博客新建验证访问启动右键浏览器输入页面显示正常集成视图引擎参考文档参考项目文件导入配置测试访问学习文档源码下载百度云盘地址 spring boot 之旅 系统环境 JDK 8 Spring Boot 1.5.3 beetl 2.7.15 新建项目 adagio 使用开发工具 Spring Tool Suite - new Spri...

    aikin 评论0 收藏0
  • 【从零入门系列-0】Spring Boot 之 Hello World

    摘要:结束语非常智能化,为开发者提供大量的默认配置细节,因此在的帮助下可以快速完成项目的运行,极简入门继续看从零入门系列程序结构设计说明 环境准备 java 开发环境 JDK1.8 安装 Maven 安装,jar自动依赖及包管理工具 IDE编辑器:IntelliJ IDEA 2019 说明 本项目为从零入门示例,目标为构建一个书籍增删改查管理页,力争记录一个无java基础的程序员学习笔...

    icyfire 评论0 收藏0
  • Beetl 快速入门

    摘要:简单快速了解是前端视图填充数据的工具,是个页面模板,可以像表达式那样操作数据,那样公共代码引用,很多好用的方法。目录结构快速接入深入了解待续。。。 简单快速了解 Beetl 是前端视图填充数据的工具,是个页面模板,可以像 el 表达式那样操作数据,jsp 那样公共代码引用,很多好用的方法。官方模板对比:showImg(https://segmentfault.com/img/bVbfa...

    wushuiyong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<