我有一個屬性文件的本地化:JSF 2本地化(託管bean)
foo=Bar
title=Widget Application
這是在faces-配置捆綁作爲一個resource-bundle
:
<resource-bundle>
<base-name>com.example.messages.messages</base-name>
<var>msgs</var>
</resource-bundle>
我可以訪問此只在使用EL的facelets視圖中很好:
<title>#{msgs.title}</title>
但是,如果有像SQLExceptions這樣的東西,我需要能夠從託管bean寫入消息。這是所有工作也:
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "There was an error saving this widget.", null);
FacesContext.getCurrentInstance().addMessage(null, message);
這裏的問題:我想有這些消息都來自屬性文件,這樣他們也可以根據區域設置改變。有沒有一種簡單的方法來使用注入來訪問屬性文件?
我看到了這個,當我GOOGLE了它。然而,有沒有一種更優雅的方式讓容器使用@Resource(「#{msgs}」)或類似的東西來注入?我想,因爲我使用的是CDI,所以我可以創建一個'@ MessageBundle'的生產者,然後傳回一個'Properties'對象... – 2010-08-13 15:15:08
我在最後一個項目中使用了這種方法 - 我們有DB錯誤的相同問題。如果這個問題仍然沒有解決,我可以在下週三看看這個老源。 – Lars 2010-08-13 15:27:05
你是對的,這是一個有效的方法。我只是想知道是否有辦法更優雅地做到這一點。我可以使用CDI來注入它。如果沒有內置的註釋,這將起作用。 – 2010-08-13 15:44:10