【发布时间】:2012-03-26 22:49:40
【问题描述】:
我正在使用 Seam 3 国际化包在我的应用程序中实现消息传递。
简而言之,这就是我正在做的:
导入/注入所需的类:
import org.jboss.seam.international.status.Messages;
import javax.inject.Inject;
@Inject
private Messages messages;
当发生错误时,我在我的支持 bean 中创建一条消息:
messages.error(new BundleKey("AppMsgResources", "errorMsgKey")).defaults("Error: Something bad happened!");
最后我在我的面孔页面中显示消息,如下所示:
<h:messages />
到目前为止我认为非常标准......
我想要实现的自定义逻辑是能够首先检查一个数据库表(让我们调用这个表 MessageBundleOverride)以获取匹配的消息键。如果存在,我想使用 MessageBundleOverride 表中的值,而不是属性文件。如果它不存在或为空,我想使用在属性文件中找到的值。
我在想有一种 Weld/CDI 方法可以做到这一点,我可以实现 Messages 接口并以某种方式使用 seam 注册它,以便它在“注入”期间获取我的消息实现,而不是默认的 MessagesImpl 实现使用 Seam 国际化包。我对 Seam / Weld 有点陌生,所以不确定这是否是一件简单的事情。
非常感谢任何帮助, 谢谢!
【问题讨论】:
标签: java jsf-2 internationalization seam cdi