Struts2 ActionSupport getTexts() не работает

#java #struts2

#java #struts2

Вопрос:

Моя конфигурация веб-программы — Struts2 и Tomcat 6.0.

и мой проект поддерживает i18n (международный ~)

и я использую класс extends com.opensymphony.xwork2.ActionSupport .

getText(String) Метод работает, но getTexts() не срабатывает.

 public class MyAction extends ActionSupport {
    public void textString() {
        // print "en" works
        String strTemp1 = getText("CURRENT.LOCALE");
        System.out.println(strTemp1);

        // This doesn't; bundle is null.
        ResourceBundle bundle = getTexts();
        System.out.println(bundle);
    }
}
  

globalMessage_en.properties

 CURRNET.LOCALE = en
  

Комментарии:

1. можете ли вы предоставить подробную информацию о том, как вы получаете к этому доступ. обычно getTexts() Получает пакет ресурсов, связанный с реализующим классом (обычно action).

2. Является ли ошибка в написании CURRENT.LOCALE в файле свойств опечаткой? Кроме того, как вы объявляете глобальные ресурсы сообщений в вашей конфигурации S2?

Ответ №1:

На самом деле это работает так, как задумано. Из документов TextProvider.getTexts() ):

Получите пакет ресурсов, связанный с реализующим классом (обычно action).

Поскольку у вас есть только глобальный ресурс сообщений, он возвращает null . Если бы у вас был определенный ресурс сообщения для вашего действия (например, MyAction.properties в том же каталоге, что и ваше действие), он вернул бы соответствующее ResourceBundle ( PropertyResourceBundle ).