我管理兩個屬性是一個用於通用消息和一個屬於我的系統的每個模塊,但我遇到的問題是,當調用第一個方法getMessage()總是調用資源的屬性,當它應該去消息。在faces-config jsf中調用多個屬性,我總是調用資源?
public class ResourceBundleUtil implements Serializable {
private static final long serialVersionUID = 1L;
public static final String MESSAGE_PATH = "messages";
public static final String RESOURCE_PATH = "resources";
private static HashMap<String, Object> messageBundles = new HashMap<String, Object>();
public static String getMessage(String key) {
if (key == null) {
return null;
}
try {
Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
if (locale == null) {
locale = Locale.ENGLISH;
}
ResourceBundle messages = (ResourceBundle) messageBundles.get(locale.toString());
if (messages == null) {
messages = ResourceBundle.getBundle(MESSAGE_PATH, locale);
messageBundles.put(locale.toString(), messages);
}
return messages.getString(key);
} catch (Exception e) {
return key;
}
}
public static String getResource(String key) {
if (key == null) {
return null;
}
try {
Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
if (locale == null) {
locale = Locale.ENGLISH;
}
ResourceBundle messages = (ResourceBundle) messageBundles.get(locale.toString());
if (messages == null) {
messages = ResourceBundle.getBundle(RESOURCE_PATH, locale);
messageBundles.put(locale.toString(), messages);
}
return messages.getString(key);
} catch (Exception e) {
return key;
}
}
}
我的問題是,的getMessage()方法總是調用資源 propertie,應該在什麼時候消息:
if (messages == null) {
messages = ResourceBundle.getBundle(MESSAGE_PATH, locale);
messageBundles.put(locale.toString(), messages);
}
沒有進入條件,並注意到自帶名稱值是資源。
不像方法getResource()如果我注意到,運行正常。
請問我應該對此問題發表評論,謝謝。