Введение в Quick Struts 2

Беглый Struts 2 Введение

 

1. Вступление

Apache Struts 2 - это платформа на основе MVC для разработки корпоративных веб-приложений Java. Это полное переписывание оригинальной структуры Struts. Он имеет реализацию API с открытым исходным кодом и богатый набор функций.

In this tutorial, we will have a beginner’s introduction to different core components of the Struts2 framework. Более того, мы покажем, как ими пользоваться.

2. Обзор Struts 2 Framework

Некоторые из функций Struts 2:

  • POJO (простые старые Java-объекты) действия

  • поддержка плагинов для REST, AJAX, Hibernate, Spring и т. д.

  • соглашение о конфигурации

  • поддержка различных технологий view-layer

  • простота профилирования и отладки

2.1. Различные компоненты распорок2

Struts2 - это основанная на MVC инфраструктура, поэтому следующие три компонента будут присутствовать во всех приложениях Struts2:

  1. Action class –, который является классом POJO (POJO означает, что он не является частью какой-либо иерархии типов и может использоваться как отдельный класс); мы реализуем нашу бизнес-логику здесь

  2. Controller – в Struts2, HTTP-фильтры используются как контроллеры; они в основном выполняют такие задачи, как перехват и проверка запросов / ответов

  3. View – используется для представления обработанных данных; обычно это файл JSP

3. Разработка нашего приложения

Приступим к разработке нашего веб-приложения. Это приложение, в котором пользователь выбирает конкретный брендCar и получает персонализированное сообщение.

3.1. Maven Зависимости

Давайте добавим следующие записи вpom.xml:


    org.apache.struts
    struts2-core
    2.5.10


    org.apache.struts
    struts2-junit-plugin
    2.5.10


    org.apache.struts
    struts2-convention-plugin
    2.5.10

Последнюю версию зависимостей можно найтиhere.

3.2. Бизнес Логика

Давайте создадим класс действияCarAction, который возвращает сообщение для определенного входного значения. CarAction имеет два поля -carName (используется для хранения ввода от пользователя) иcarMessage (используется для хранения настраиваемого сообщения, которое будет отображаться):

public class CarAction {

    private String carName;
    private String carMessage;
    private CarMessageService carMessageService = new CarMessageService();

    public String execute() {
        this.setCarMessage(this.carMessageService.getMessage(carName));
        return "success";
    }

    // getters and setters
}

КлассCarAction используетCarMessageService, который предоставляет настроенное сообщение для брендаCar:

public class CarMessageService {

    public String getMessage(String carName) {
        if (carName.equalsIgnoreCase("ferrari")){
            return "Ferrari Fan!";
        }
        else if (carName.equalsIgnoreCase("bmw")){
            return "BMW Fan!";
        }
        else {
            return "please choose ferrari Or bmw";
        }
    }
}

3.3. Принятие пользовательского ввода

Давайте добавимJSP, который является точкой входа в наше приложение. Это содержимое файлаinput.jsp:


    

Welcome to example Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

Тег <form> определяет действие (в нашем случае это HTTP URI, на который должен быть отправлен запрос GET).

3.4. Часть контроллера

StrutsPrepareAndExecuteFilter - это контроллер, который будет перехватывать все входящие запросы. Нам необходимо зарегистрировать следующий фильтр вweb.xml:


    struts2
    org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter



    struts2
    /*

StrutsPrepareAndExecuteFilter будет фильтровать каждый входящий запрос, поскольку мы указываем подстановочный знак соответствия URL<url-pattern>/ *

3.5. Настройка приложения

Давайте добавим следующие аннотации к нашему классу действийCar:

@Namespace("/tutorial")
@Action("/car")
@Result(name = "success", location = "/result.jsp")

Давайте разберемся в логике этой аннотации. @Namespace используется для логического разделения URI запроса для разных классов действий; нам нужно включить это значение в наш запрос.

Кроме того,@Action сообщает фактическую конечную точку URI запроса, которая попадет в наш классAction. Класс действия обращается кCarMessageService и инициализирует значение другой переменной-членаcarMessage. После того, как методexecute() возвращает значение, в нашем случае“success”, он сопоставляет это значение для вызоваresult.jsp

Наконец,@Result имеет два параметра. Первый,name,, указывает значение, которое вернет наш классAction; это значение возвращается из методаexecute() классаAction. This is the default method name which will be executed.

Вторая часть,location,, сообщает, к какому файлу следует обращаться после того, как методexecute() вернул значение. Здесь мы указываем, что когдаexecute() возвращает строку со значением «success», мы должны перенаправить запрос наresult.jsp.

Та же самая конфигурация может быть достигнута предоставлением файла конфигурации XML:


    
        
            /result.jsp
        
    

3.6. Вид

Это содержимоеresult.jsp, которое будет использоваться для представления сообщения пользователю:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

    

Hello example User

You are a

Здесь следует отметить две важные вещи:

  • в<@taglib prefix=”s” uri=”/struts-tags %> мы импортируем библиотекуstruts-tags

  • в<s:property value=”carMessage”/> мы используем библиотекуstruts-tags для вывода значения свойстваcarMessage

4. Запуск приложения

Это веб-приложение можно запустить в любом веб-контейнере, например, в Apache Tomcat. Это необходимые шаги для его достижения:

  1. После развертывания веб-приложения откройте браузер и перейдите по следующему URL-адресу:http://www.localhost.com:8080/MyStrutsApp/input.jsp

  2. Выберите один из двух вариантов и отправьте запрос

  3. Вы будете перенаправлены на страницуresult.jsp с настраиваемым сообщением на основе выбранной опции ввода.

5. Заключение

В этом руководстве мы пошагово ознакомились с руководством по созданию нашего первого веб-приложения Struts2. Мы рассмотрели различные аспекты, связанные с MVC в области Struts2, и показали, как их объединить для разработки.

Как всегда, это руководство можно найтиover on Github как проект Maven.