Бързи накрайници 2 Въведение

1. Въведение

Apache Struts 2 е базирана на MVC рамка за разработване на корпоративни Java уеб приложения. Това е пълно пренаписване на оригиналната рамка на Struts. Притежава API с отворен код и богат набор от функции.

В този урок ще имаме въведение за начинаещи в различни основни компоненти на структурата Struts2. Освен това ще покажем как да ги използваме.

2. Общ преглед на Struts 2 Framework

Някои от функциите на Struts 2 са:

  • Действия, базирани на POJO (обикновени стари Java Обекти)
  • поддръжка на приставки за REST, AJAX, Hibernate, Spring и др
  • конвенция за конфигурация
  • поддръжка на различни технологии на ниво изглед
  • лекота на профилиране и отстраняване на грешки

2.1. Различни компоненти на Struts2

Struts2 е базирана на MVC рамка, така че следните три компонента ще присъстват във всички приложения на Struts2:

  1. Клас на действие - който е POJO клас (POJO означава, че не е част от йерархия на типове и може да се използва като самостоятелен клас); ние ще приложим нашата бизнес логика тук
  2. Контролер - в Struts2, HTTP филтрите се използват като контролери; те основно изпълняват задачи като прихващане и валидиране на заявки / отговори
  3. Изглед - използва се за представяне на обработени данни; обикновено е JSP файл

3. Проектиране на нашето приложение

Нека да продължим с разработването на нашето уеб приложение. Това е приложение, при което потребителят избира определена марка автомобил и се поздравява от персонализирано съобщение.

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 

Най-новата версия на зависимостите можете да намерите тук.

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, който предоставя персонализирано съобщение за марка Автомобил :

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 Baeldung 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 съвпадение на заместващ символ / *

3.5. Конфигуриране на приложението

Нека добавим следните пояснения към нашия екшън клас Car :

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

Нека разберем логиката на тези пояснения. @ Името на пространството се използва за логическо разделяне на URI на заявката за различни класове действия; трябва да включим тази стойност в нашата заявка.

Освен това @Action казва действителната крайна точка на URI на заявката, която ще удари нашия клас Action . Класът на действие се консултира с CarMessageService и инициализира стойността на друга членска променлива carMessage . След като методът execute () връща стойност, "успех" в нашия случай, той съответства на тази стойност, за да извика result.jsp

И накрая, @Result има два параметъра. Първият, име, указва стойността, която нашият клас Action ще върне; тази стойност се връща от метода execute () на клас Action . Това е името на метода по подразбиране, което ще бъде изпълнено .

Втората част, местоположение, казва кой е файлът, към който трябва да се обърне внимание, след като методът execute () е върнал стойност. Тук посочваме, че когато execute () връща String със стойност „ успех “, трябва да препратим заявката към result.jsp .

Същата конфигурация може да бъде постигната чрез предоставяне на XML конфигурационен файл:

   /result.jsp   

3.6. Гледката

Това е съдържанието на result.jsp, което ще се използва за представяне на съобщението на потребителя:

Hello Baeldung User

You are a

Тук има две важни неща, които трябва да забележите:

  • вние импортираме библиотека struts-tags
  • вние използваме библиотека struts -tags, за да отпечатаме стойността на свойството carMessage

4. Стартиране на приложението

Това уеб приложение може да се изпълнява във всеки уеб контейнер, например в Apache Tomcat. Това са необходимите стъпки за изпълнението му:

  1. След внедряването на уеб приложението отворете браузъра и отворете следния URL: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Изберете една от двете опции и изпратете заявката
  3. Ще бъдете препратени към страницата result.jsp с персонализирано съобщение въз основа на избраната опция за въвеждане

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

В този урок разгледахме ръководство стъпка по стъпка как да създадем първото си уеб приложение Struts2. Покрихме различни аспекти, свързани с MVC в домейна Struts2 и показахме как да ги съберем за разработка.

Както винаги, този урок може да бъде намерен в Github като проект на Maven.