Я хотел бы иметь возможность извлекать строку из пакета сообщений из управляемого bean-объекта JSF 2. Это может быть сделано в ситуациях, когда строка используется в качестве параметра сводки или сведений в FacesMessage
или как сообщение в вызванном исключении.
Я хочу убедиться, что управляемый компонент загружает правильный пакет сообщений для локали пользователя. Мне непонятно, как это сделать из управляемого bean-компонента с использованием вызовов JSF API.
Моя конфигурация:
ПРИМЕЧАНИЕ: Я видел этот аналогичный вопрос , но это зависит от функций которые недоступны в моей конфигурации
РЕДАКТИРОВАТЬ: Я допустил ошибку в своем исходном вопросе. Я хотел спросить: «Как я могу получить строку пакета ресурса изнутри управляемого bean-компонента»? BalusC дал мне правильный ответ на мой вопрос. Решение для того, что я на самом деле хотел задать, очень похоже:
public static String getResourceBundleString(
String resourceBundleName,
String resourceBundleKey)
throws MissingResourceException {
FacesContext facesContext = FacesContext.getCurrentInstance();
ResourceBundle bundle =
facesContext.getApplication().getResourceBundle(
facesContext, resourceBundleName);
return bundle.getString(resourceBundleKey);
}
Кроме того, вот ссылка на другой вопрос , который объясняет разницу между пакетами «сообщения» и «пакетами ресурсов».