通过freemarker指令,实现js文件的国际化,可在js中写表达式

本文深入探讨了如何利用Freemarker框架处理JavaScript资源的国际化问题,包括实现原理、准备工作以及可能遇到的问题与解决方案。通过定义自定义JSP标签,将JS文件视为模板,并通过locale信息动态生成不同语言目录下的JS文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日有了国际化的需求,以前处理国际化时,对于javascript资源中的国际化问题,一直是个头疼的问题,我们一起来探讨一下,如何使用freemarker实现js文件的国际化。
实现原理:
  1. 我们将JS文件做为模板,通过freemarker对其进行格式化。
  2. 扩展freemarker指令,定义资源指令。
  3. 前台JSP的tag库。
准备工作:
  1. 定义我们自己的jsp标签 : <p:script src=”test.js”/>,标签内容: 指定js文件路径,标签内部从request中取locale信息,通过freemarker取到test.js这一模板(我将我的js文件都放到了/scripts目录下),将locale信息作为变量放到模板中,进行格式化。然后写到应用某一目录中,最终我们的<p:script src=”test.js”/>标签,输出内容为:<script type=”text/javascript” src=”/scripts_bin/zh/test.js”>,p:script先通过当前locale和src属性,判断是否格式化之后的js文件存在,例如/scripts_bin/zh/test.js文件不存在,则调用模板输出,存在的话,直接返回URL,
  2. 问题:开发过程中的问题,上面的描述,貌似我们的JS每次都被格式化,然后存储到另一个目录中,而且下次就不会对那么目录进行重新,当然我们可以通过配置解决此问题,我给系统加入了resource.cache_script配置,如果设为false,则每次都会进行重写。

方案总结: 首先我们将JS文件视为模板,然后封装我们自己的指令,对JS中的表达式进行替换,存放到应用的某一目录下,通过JSP标签,输出不同语言目录下的JS文件。

详细:http://www.codeloger.com/?p=549

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值