zoukankan      html  css  js  c++  java
  • freemarker中使用<@spring.*>标签实现国际化

    freemarker实现国际化使用自定义指令<@spring>实现,通过@符号可以看出是自定义的指令,在哪里定义的呢?

    路径如下:org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar!/org/springframework/web/servlet/view/freemarker/spring.ftl

    打开spring.ftl文件,可以看到定义了很多宏指令,我列出几个常用的:

    
    

    #这个宏名称为message,参数只有code,是我们国际化中最常用的,它实际调用了RequestContext的getMessage(String code)方法

    <#macro message code>${springMacroRequestContext.getMessage(code)}</#macro>

    #这个宏名称为messageArgs ,参数有两个code和args,国际化字符串中有占位符时可以用到,它实际调用了RequestContext的getMessage(String code, @Nullable Object[] args)方法

    <#macro messageArgs code, args>${springMacroRequestContext.getMessage(code, args)}</#macro>

    #这个与第二个类似,只是多了一个text参数,text传递的是默认值,调用了getMessage(String code, @Nullable Object[] args, String defaultMessage)

    <#macro messageArgsText code, args, text>${springMacroRequestContext.getMessage(code, args, text)}</#macro>

     

    用法:

    1.首先定义2个国际化配置文件

    messages_zh_CN.properties:

    username=用户名
    title=欢迎来到{0},{1}!

    messages_en_US.properties:

    username=UserName
    title=welcome to {0},{1}!

    2. 编辑前端ftl模板

      我这里只写出主要前端代码。

    index.ftl:

    <html>
    <!--一定要导入spring.ftl-->
    <#import "spring.ftl" as spring>
    
    <body>
    <!--或者<@spring.message code="username" />-->
    <@spring.message "username" />
    
    <!--arg是一个在freemarker中定义的数组,包含了占位符{0},{1}对应的参数 -->
    <#assign arg = ["我的首页","张三"]>
    <@spring.messageArgs "title" arg />
    
    </body>
    </html>

    3.小结

    需要注意的点:

    1)一定要引入spring.ftl

    2)<@spring.messageArgs> 第二个参数是一个freemarker数组,需要先用<#assign>指令定义好,

    通过一个小例子,写了freemarker国际化过程中,<@spring.message>,<@spring.messageArgs>的用法,spring.ftl还定义了其他的宏,大家照葫芦画瓢,也就会用了。

  • 相关阅读:
    Python批量爬取唯美类图片
    查找Windows启动程序
    在Windows10中进行蓝屏排查
    在Windows 10中应该记住的完整的多指触摸板手势
    通过命令行工具远程注销用户
    Windows 7,8.1和10中的隐藏退出资源管理器选项
    找出正在使用的全局热键
    windows10中创建环境变量
    mysql高级(锁机制)
    mysql高级(查询截取分析)
  • 原文地址:https://www.cnblogs.com/tibit/p/9075883.html
Copyright © 2011-2022 走看看