如何将 Messages.properties 链接到 facesContext.getApplication().getMessageBundle()?

问题描述 投票:0回答:1

由于某种原因,以下代码不起作用,我不明白为什么。

@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 文件中?

jsf
1个回答
0
投票

请检查不等于null

@Postconstruct
方法中messageBundle的声明。

即,

if(messageBundle != null)
     messageBundle = ResourceBundle.getBundle(
                        facesContext.getApplication().getMessageBundle(),
                        locale);
© www.soinside.com 2019 - 2024. All rights reserved.