1. Раздел. Пособие Struts2 в примерах.

В первом разделе пособия представлены три примера, основная цель которых подобно "Hello, World!" показать, что фреймворк Struts2:
  • подключен и правильно функционирует;
  • способен выполнять функции интернационализации Web-приложений;
  • обрабатывает ошибки и показывает подробную информацию при возникновении исключительной ситуации.
Описание каждого примера заканчивается ключевыми моментами, на которые следует обратить внимание при изучении фреймворка Struts2.

1.1. Пример приветствия

Пример приветствия является базовым примером, в котором рассматриваются вопросы подключения и настройки Struts2, структуры файла конфигурации struts.xml, определение действия (action) в JSP-страницах, взаимодействие класса-действия (java-класс) с тегами JSP-страницы пакета struts-default для решения задачи обмена информацией. В базовой версии на страницах JSP используется кодировка charset кириллицы (windows-1251).

Ключевые позиции примера :
  • обращение к первой странице из hello.html;
  • представление FilterDispatcher в файле дискрипторе web.xml;
  • структура файла конфигурации struts.xml :
    • описание package;
    • описание action;
  • обращение к JSP-страницам в теге <s:url... > для выполнения действия;
  • представление компонента textfield и кнопки submit на странице JSP;
  • метод execute () класса-действия ( HelloUser.java );
  • методы getter- и setter- класса-действия ( HelloUser.java ).

1.2. Пример локализации интерфейса

Пример с локализацией (интернационализацией) пользовательского интерфейса использует кодировку charset UTF-8. Фреймворк Struts2 подключает внешние ресурсы в виде файлов *.properties для локализации интерфейса. Для каждой страницы определен свой файл ресурсов.

В отличии от нелокализованного примера приветствия, в котором применяется простой java-класс, в примере с локализацией java-классы (классы действия) наследуют свойства ActionSupport для использования файлов ресурсов *.properties.

Ключевые позиции примера :
  • обращение к первой странице из index.jsp;
  • параметр request_locale страницы Greeting.jsp;
  • локализация JSP-страниц параметрами файлов свойств .properties;
  • чтение и представление свойства customGreeting на странице HelloUser.jsp;
  • класс ActionSupport и наследование его свойств для локализации ( классы *.java );
  • класс ActionContext для определения параметров локализации ( Locale );
  • чтение параметров формы ( userName ) и формирование свойства customGreeting.

1.3. Пример обработки ошибок

Вопросы обработки ошибок (возникновение исключительных ситуаций) рассматриваются в третьем примере, в котором используется один общий файл ресурсов. Страница ошибок, также, как и все JSP-страницы, может быть локализована.

Пример вызова исключительной ситуации напоминает пример локализации интерфейса. Отличие заключается в том, что в данном примере используется один файл свойств *.properties для каждого языка и для всех JSP-страниц, который обрабатывается одним классом-действием Common.java. Класс действие HelloUser.java вызывает исключительную ситуацию, если на странице Entry.jsp не введено имя пользователя и нажимается кнопка.

Ключевые позиции примера :
  • определение положений в файле конфигурации example3.xml для вызова страницы обработки ошибок;
  • вызов исключительной ситуации, если зачение userName не определено.