Как мне получить строка пакета сообщений из управляемого bean-объекта?

Я хотел бы иметь возможность извлекать строку из пакета сообщений из управляемого bean-объекта JSF 2. Это может быть сделано в ситуациях, когда строка используется в качестве параметра сводки или сведений в FacesMessage или как сообщение в вызванном исключении.

Я хочу убедиться, что управляемый компонент загружает правильный пакет сообщений для локали пользователя. Мне непонятно, как это сделать из управляемого bean-компонента с использованием вызовов JSF API.

Моя конфигурация:

  • Использование Tomcat 7 в качестве контейнера, поэтому решение не может зависеть от вызовов API, которые работают только в полном приложении контейнер сервера
  • Использование эталонной реализации JSF 2 (Mojarra)
  • НЕ использование каких-либо библиотек, поддерживающих CDI

ПРИМЕЧАНИЕ: Я видел этот аналогичный вопрос , но это зависит от функций которые недоступны в моей конфигурации

РЕДАКТИРОВАТЬ: Я допустил ошибку в своем исходном вопросе. Я хотел спросить: «Как я могу получить строку пакета ресурса изнутри управляемого 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);
}

Кроме того, вот ссылка на другой вопрос , который объясняет разницу между пакетами «сообщения» и «пакетами ресурсов».

30
задан Community 23 May 2017 в 10:31
поделиться