#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
).