有没有一种方法可以在运行时覆盖消息捆绑中定义的属性的值?
我的grails应用程序在messages.properties文件中包含一个属性:
page1.para1.text=Some text to display to the user
我的Config.groovy定义以下配置位置:
grails.config.locations = [ "file:${userHome}/.myApp/myApp-config.properties" ]
我目前使用这种方法来覆盖Config.groovy属性(例如db连接等),但是并未将其应用于消息捆绑包属性。
我希望/希望仅确保myApp-config.properties文件包含我的新属性值,重新启动部署了我的应用程序的Tomcat服务器,它将被拾取并显示在我的页面上:
page1.para1.text=Some DIFFERENT text to display to the user
关于内部化/消息捆绑包的Grails文档grails i18n不建议这样做是否可行。
显然,我正在尝试实现此更改,而无需重新编译并重新交付Grails应用程序。
有任何想法吗?
提前致谢。
当您已经生活并且不想创建新的.war文件时:
我不确定,但是可以在服务器上找到.war文件的解压缩文件。您可以尝试直接在服务器上替换消息文件,但是可能需要重新启动应用程序。但是我不建议这样做。
如果您需要在运行时经常更改消息束,我想将它们存储在数据库中是有意义的。但这意味着您必须稍稍更改代码并重新部署一次。有一个博客条目描述了如何执行该操作:http : //graemerocher.blogspot.de/2010/04/reading-i18n-messages-from-database.html另一个SO问题处理了您要存储更改的情况数据库中的消息,但回退到文件:Grails i18n从数据库,但默认返回到文件
hth
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句