do77 2009-04-10 00:08
浏览 203
已采纳

jstl资源国际化的疑问

我这里所指的国际化,是在页面中显示的资源。

我的经历:
之前一直使用struts的国际化标签bean:message/,现在某些不可抗拒原因需要更换成为jstl
现在发现jstl国际化时有些功能无法满足,现在把我的需求列举如下:
[list]
[*]可以在页面中方便的显示资源。可以用一个标签或者el就可以做到
[*]可以同时在一个bundle中使用多个资源文件。
[/list]

对于第一个需求,struts和jstl都可以做到。

针对第二个需求,大家都知道产品和项目的区别,产品中提供一套资源文件,而在项目定制中可能会定制其中的部分资源。
那这时我当然希望可以同时引入这2个资源文件,优先级根据配置的顺序决定,例如在struts中这样配置:
[code="xml"] parameter="mypackage.myproduct.resource,mypackage.myproject.resource"
null="false">
[/code]
这就同时引入了2个资源文件,而且myproject资源优先级比myproduct的高。
而在jstl中,只有bundle和资源文件一一对应,无法满足我的需求。

不知道大家在开发中采用的是哪种方式?是不是有满足我需求的方法?
[b]问题补充:[/b]
如果确实没有方法,也只能定制tag了

不过hantsy的回答最全面,还提到了一些实现的方法

再等2天,希望可以有更满意的解决方案

谢谢所有回答的人!

  • 写回答

5条回答 默认 最新

  • hantsy 2009-04-15 10:08
    关注

    jstl 使用多个 resource bundle 好像没有特别好的解决方案,你可以定义一个默认的resource bundle,而在其它使用时指定bundle。

    javax.servlet.jsp.jstl.fmt.localizationContext
    StripesResources

    一般情况下,在项目开发中,resource 在哪个文件应该是比较明确的,分为多个文件事先就应该有规划。不应该出现,自己不知道它在哪个文件,让程序自己查找。
    如果在项目不同阶段,出于不同目的要使用不同的文件,可以在打包时处理。比如,提供resource-dev.properties,resource-prod.properties两个文件,打包时用ant 自动处理,复制到目标目录时,修改文件名,达到不同阶段相同resource 文件的目的。
    它过去的开发经验中,不同阶段打包的不同主要是出于项目的运行环境不同,一般不会涉及到resource文件的,比如,数据库配置,logging level的配置,服务器特定的配置文件等。
    另外,如果一定还是要坚持使用的话,如果是使用 Spring 的话,可以研究其MessageSource 的解决方案,结合它的JSTL view resovler,应该可以找到答案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型