由于某种原因,以下代码不起作用,我不明白为什么。
@PostConstruct
private void init()
{
facesContext = FacesContext.getCurrentInstance();
locale = facesContext.getExternalContext().getRequestLocale();
messageBundle =
ResourceBundle.getBundle(
facesContext.getApplication().getMessageBundle(),
locale);
}
当我调用
getMessageBundle
时,我得到一个 null
,导致 ResourceBundle.getBundle()
抛出 NullPointerException
。如何将 Messages.properties 链接到 getMessageBundle()
调用,或者我应该将其翻译为 getResourceBundle("bundle")
?
我通过在 faces-config.xml 中设置
<message-bundle>
使其工作。除了将其声明为 <resource-bundle>
之外,还有什么方法可以包含它而不加载到每个 .xhtml 文件中?
请检查不等于null
@Postconstruct
方法中messageBundle的声明。
即,
if(messageBundle != null)
messageBundle = ResourceBundle.getBundle(
facesContext.getApplication().getMessageBundle(),
locale);