Apache Struts – фреймворк с открытым исходным кодом для создания Java Enterprise Edition веб-приложений. Основывается на Java Servlet API и расширяет его, в архитектурном плане реализует (или даёт возможность реализовать) паттерн MVC (Model-View-Controller).
Фреймворк создан Крейгом МакКланаханом и передан Apache Foundation в мае 2000 года. Сначала находился в составе Apache Jakarta Project и был известен как Jakarta Struts. С 2005 года является проектом Apache верхнего уровня.
Apache Struts был одним из первых веб-фреймворков для Java и стал одним из самых популярных и известных. Однако его архитектура имела ряд недостатков, а проект долгое время не развивался, поэтому Struts 2 был создан на базе совсем другого фреймворка – Webwork. Команды Webwork и Struts объединили свои проекты в Struts 2, взяв реализацию Webwork и известное в корпоративной среде название Struts.
Apache Struts был создан для того, чтобы чётко разделить модель (бизнес-логику), представление (HTML-страницы) и контроллер (отвечающий за передачу данных от модели к представлению и обратно). Struts предоставляет стандартный контроллер – сервлет под именем ActionServlet и различные средства для создания страниц представления. Разработчик веб-приложения отвечает за написание кода модели и создание конфигурационного файла struts-config.xml, который связывает воедино модель, представление и контроллер.
Запросы от клиента передаются контроллеру в виде “Actions” (действий), определённых в конфигурационном файле. Когда контроллер получает такой запрос, он передаёт его соответствующему Action классу. Последний взаимодействует с кодом Модели и возвращает контроллеру “ActionForward”, строку, определяющую страницу для отправления клиенту. Информация передаётся между моделью и представлением в виде особых JavaBeans. Богатая библиотека тегов позволяет получать данные из бинов и записывать их без Java кода.
Apache Struts также поддерживает i18n (интернационализацию), облегчает валидацию данных полученных из веб-формы и предоставляет механизм создания шаблонов под названием “Tiles”, который кроме всего прочего позволяет наследовать веб-страницы.
Ссылки