2011-10-08 68 views
1

我目前正在使用java中的国际化web应用程序,只使用标准servlet API(无框架)。为标题,标签等页面上的所有静态文本。我一直在使用fmt标记库,由WEB-INF/classes中的属性文件支持。 应用程序几乎已完成,但我们的客户可能稍后想要更改或更新翻译的要求已突然出现。
由于属性文件位于战争内部,因此无需重新编译应用程序就无法执行此操作。所以,我的问题很简单:是否有任何方法更新战争中的属性文件,或者可能有setBundle标记从外部目录加载文件。或者可能是第三种更干净和正确的方法来实现这一目标?改变jstl fmt中的翻译而无需重新编译

+0

我不知道如何需要改变或更新了翻译也“突然“想出来 - 你应该总是假定应用程序中的任何文本可能需要修改,尤其是*翻译。 –

+0

当然,它很容易修改,只要你有源代码(或解压缩/重新压缩如下建议,或部署爆炸战争)。这也是为什么我希望有一个干净的方式来做到这一点。 – vruum

回答

0

将它们放入外部文件夹并将其路径添加到webapp的运行时类路径中。例如,/var/webapp/conf。至于将此路径添加到Web应用程序的运行时类路径,这取决于所使用的服务器。如果是例如Tomcat 6/7,那么您需要将其添加到Tomcat/conf/catalina.properties文件的shared.loader属性中。

shared.loader = /var/webapp/conf 

这种方式是可以在Web应用程序的运行时类路径通常的方式,你不需要重新打包WAR ..

+0

谢谢,这是我寻找的那种解决方案。我会试试 – vruum

+0

只是为了跟进。我最终选择了BalusC的解决方案。将以下内容添加到jboss-service.xml中。 '' 适用于jboss 4.2和jboss 6. 所以,再次感谢 – vruum