我想创建另一个资源包来组织我的 Grails 应用程序。Grails 提供了一个“消息”资源包,我需要创建一个“myApp”资源包。
如何使用“g:message”GSP 标签创建新资源包并读取其属性?
我想创建另一个资源包来组织我的 Grails 应用程序。Grails 提供了一个“消息”资源包,我需要创建一个“myApp”资源包。
如何使用“g:message”GSP 标签创建新资源包并读取其属性?
您必须在grails-app/conf/spring/resources.groovy中创建一个 bean,它将覆盖默认的 MessageSource。
// Place your Spring DSL code here
beans = {
messageSource(org.springframework.context.support.ReloadableResourceBundleMessageSource) {
basename = "classpath:grails-app/i18n/myApp"
}
}
注意:如果您需要自定义 Grails,我能给您的唯一建议是通过以下链接熟悉 Spring 框架(特别是 Spring-MVC):
Grails(从 1.0.3 版开始)会自动将目录中的所有属性文件添加grails-app/i18n
到资源包中。无需手动添加它们:)
从 Grails 1.3.4 开始,添加到grails-app/i18n
目录的任何属性文件都将添加到messageSource
.
此外,如果您尝试手动添加 bean(及其下的基本名称),当您进入生产环境时,它不会加载它们。它将在开发模式下工作(测试在 IDEA 9.0.3 和 tomcat 插件 v1.3.4 上运行),但不能在生产模式下工作。
这发生在我遵循@rochb 提供的答案之后(我检查了答案并在尝试简单方法之前实现了),我必须删除 messageSource bean 配置才能更正它。