Struts2在FreeMarker中国际化的配置

   在Struts2中使用FreeMarker作为表现层已经基本作为普遍配置了。但是熟悉JSP的开发者习惯了JSP标签的使用,而FreeMarker中确实宏的使用,二者虽然有些差别,但是使用上能够很快过渡。 
    国际化是Java EE项目中一个不可缺少的部分,当然不是每个项目所必需的,但关键时刻却是不能避免的。当然也有项目做两个路径来进行,把语言区分开来,这也是可以的,当然这需要大量的劳动力和时间,而Java EE的国际化配置却是省时省力的。资源文件的集中管理不仅安全性更高,而且也有高效,页面文件少的特性。 
    使用了FreeMarker以后当然不能像在JSP中使用JSTL那样直接,但是也不麻烦。经过以下步骤的配置即可使用。方法固定,实现了Write Once,Copy Anywhere! 
    1.配置Struts2,使其支持国际化。方法有两种,一种是直接在struts.xml中配置,还有一种是编写properties文件,如下: 
struts.xml 

Xml代码 

 收藏代码

  1. <struts>  
  2. <constant name="struts.custom.i18n.resources" value="globalMessages"/>  
  3. ……  
  4. </struts>  


struts.properties 

Java代码 

 收藏代码

  1. struts.custom.i18n.resources=globalMessages  


    这样就指定了国际化properties文件的前缀,中文的国际化文件就可以写成globalMessages_zh.properties而日语的国际化文件就是globalMessages_ja.properties. 
    2.编写国际化文件,国际化文件的编码方式是Unicode码,这个就不用过多解释了,就是说出了拉丁文的所有文字必须经过转码后才能使用,转码方式是利用jdk提供的native2ascii.exe这个工具完成的。我想这应该没有不会的吧。如果忘了就google一下吧。 
    3.在FreeMarker中配置struts的标签库,利用标签库来读取资源文件,这个也十分容易,如下写就行了: 

Html代码 

 收藏代码

  1. <#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"]>  

说明一点就是这样就需要把struts2的标签库tld文件单独抽取出来放置,在FreeMarker中写一个宏来标识即可。 
    4.在页面中使用标签来进行国际化。如下即可: 

Html代码 

 收藏代码

  1. <@s.property value="%{getText('page.homepage.title')}"/>  


    其中page.homepage.title需要在资源文件中写好,这样FreeMarker就能直接读取到了。 
    测试时,调整浏览器的语言选项就能看到国际化的效果了。 
    希望对使用者有用,也欢迎交流看法。 

http://sarin.iteye.com/blog/586155

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值