Struts 2 Tutorial - One-stop-oplossing voor beginners



Dit artikel over Struts 2 Tutorial helpt je om aan de slag te gaan met het Struts 2-framework voor het ontwikkelen van J2EE-webapplicaties, samen met codedemonstratie.

Als u op zoek bent naar een die u kunnen helpen bij het snel en efficiënt ontwikkelen van JEE webapplicaties, dan is Struts 2 de perfecte oplossing voor u. Struts 2 is een open-source framework dat veel wordt gebruikt in de markt. Via deze Struts 2 Tutorial help ik je ermee aan de slag te gaan, samen met praktische implementaties.

Hieronder staan ​​de onderwerpen die ik in deze Struts-tutorial zal bespreken:





Wat zijn stutten?

In termen van de leek is Struts een -gebaseerd open-source framework dat helpt bij het ontwikkelen van webapplicaties in J2EE. Hetbreidt de en promoot de Model, View, Controller ( MVC ) architectuur.Hierdoor zijn de webapplicaties ontwikkeld in standaardtechnologieën zoalsJSP, JavaBeans en XML, beter te onderhouden, uitbreidbaar en flexibel.

Het Struts Framework werd oorspronkelijk ontwikkeld door Craig McClanahan en werd in mei 2000 overgedragen aan Apache Foundation. Geleidelijk aan krijgt het de positie van een Apache-project op het hoogste niveau in 2005 en later in februari 2007 werd het vervangen door Stutten 2 .



Het Struts Framework was uitgebreid gebaseerd op de MVC (Model-View-Controller) ontwerpparadigma. Het belangrijkste doel was om het model van de weergave en de controller in de toepassing te scheiden om de afhankelijkheid te verminderen en de scheiding van zorgen (SoC) te bevorderen. Met andere woorden, het hielp bij het scheiden van de applicatielogica die voornamelijk communiceert met de databasevan de waarmee de gebruiker interactie heeft met de applicatie en de instantie die helpt bij het kanaliseren van informatie tussen model en weergave.

Eigenschappen van Struts 2

  1. Op POJO gebaseerde formulieren en acties :Actieklassen in Struts worden in de applicatie behandeld als de controller. Ze zijn verantwoordelijk voor het reageren op een gebruikersactie, het uitvoeren van bedrijfslogica en het retourneren van een resultaat met de weergave die moet worden weergegeven. Het fungeert ook als modelklasse.
  2. Verbeterde tags en aanpassing: In Struts 2 zijn verschillende soorten tags geïntroduceerd, zoals UI-tags, controletags, datatags, enz. Die helpen bij de ontwikkeling van applicaties.
  3. AJAX-functionaliteit: Struts 2 ondersteunt ajax-technologie die doorgaans wordt gebruikt voor het genereren van een asynchroon verzoek. Het verbetert de prestaties van de applicatie door alleen de vereiste veldgegevens naar de server te sturen.
  4. Eenvoudige integratie: Het biedt gemakkelijke integratie met andere webframeworks, zoals , DWR, SiteMesh en Tiles.
  5. Minimale configuraties: Tijdens het gebruik van de Struts 2-applicatie zijn er geen overheadconfiguraties vereist. Het werkt met minimale configuraties waarbij de meeste instellingen de standaardwaarden aannemen, tenzij er een afwijking is.
  6. Integreer View-technologieën: Met Struts2 kunt u eenvoudig integreren met verschillende weergavetechnologieën zoals XSLT, JSP, Freemarker, velocity, enz.
  7. Thema en sjablonen: Struts 2 biedt ondersteuning voor 3 soorten thema's:
    1. Xhtml
    2. Gemakkelijk
    3. Css_xhtml

Hier is XHTML het standaardthema voor Struts 2 en wordt het voornamelijk gebruikt voor een gewone look en feel.

Nu u weet wat Struts en de verschillende functies ervan zijn, gaan we verder met dit artikel over de Struts-zelfstudie en leren we over de architectuur ervan.



Architectuur

Struts Architecture - Struts 2 Tutorial - EdurekaZoals je in het bovenstaande diagram kunt zien, gebruikt Struts high-level MVC-architectuur . Hier wordt het Struts2-verzendservletfilter gebruikt om de controller te implementeren, terwijl acties worden gebruikt om het model te implementeren en de weergave wordt geïmplementeerd door resultaattypen en resultaten te combineren. In deze architectuur wordt de rode draad, koppeling en integratie met andere componenten mogelijk gemaakt door de waardestapel en OGNL. Bovendien helpen configuraties voor de webapplicaties samen met acties, onderscheppers, resultaten, enz. Ook bij het kanaliseren van veel informatie.

Laat me nu de volledige workflow uitleggen tijdens de levenscyclus van een verzoek dat door de gebruiker wordt gegenereerd. Hieronder heb ik de stapsgewijze workflow opgesomd voor een beter begrip van hoe Struts werken:

  • Het begint met het gebruikersverzoek dat naar de server wordt gestuurd voor het aanvragen van een bepaalde bron.
  • Dit verzoek wordt vervolgens verwerkt door de filterverzender om de juiste actie te bepalen.
  • Verder worden correct geconfigureerde interceptorfuncties toegepast op het verzoek, zoals validatie, bestandsupload, enz.
  • Zodra de geselecteerde actie is besloten en deze wordt uitgevoerd op basis van de gevraagde bewerking.
  • In het geval dat enige nabewerking vereist is, worden geconfigureerde interceptors aangeroepen.
  • Uiteindelijk wordt het resultaat geleverd door de weergave en teruggestuurd naar de gebruiker.

Ik hoop dat dit de workflow binnen een Struts-applicatie wist. Laten we nu eens kijken wat je allemaal nodig hebt in je systeem om aan de slag te gaan met Struts in de volgende sectie van deze Struts 2 Tutorial

Omgeving instellen

Hieronder heb ik de basisbenodigdheden op een rijtje gezet om met Struts 2 aan de slag te gaan:

  • Java
    Als u Java niet op uw systeem heeft geïnstalleerd, kunt u het Java-installatie artikel.
  • Kater
    Als je Tomcat niet in je systeem hebt, kun je bezoeken hier gratis te downloaden.
  • IDE (bij voorkeur Eclipse)
    Eindelijk heb je je Eclipse IDE voor applicatie-ontwikkeling.

Als je klaar bent, ben je klaar om je voeten nat te maken met Struts. In het volgende deel van deze Struts 2 Tutorial zal ik je een korte toelichting geven op de fundamentele concepten van Struts 2.

Fundamentele concepten

1. Configuraties

In elke struts-applicatie zijn er twee hoofdconfiguratiebestanden:

  1. struts.xml-bestand: Dit bestand bevat de informatie over hetconfiguratie die als acties worden gewijzigd. Het wordt voornamelijk gebruikt om de standaardinstellingen in een applicatie te overschrijven. Dit bestand wordt over het algemeen gemaakt in de WEB-INF / classes-directory in elk Struts-project.
  2. struts.properties-bestand: Dit bestand biedt een mechanisme dat het gedrag van het framework kan veranderen. Sinds eenframework maakt gebruik van een aantal eigenschappen die u naar wens kunt wijzigen.

2. Acties

Acties of actieklassen zijn de kernconcepten in elke Struts 2-toepassing, aangezien ze fungeren als de controller in het MVC-patroon. Met andere woorden, actieklassen bevatten de bedrijfslogica die helpt bij het verwerken van de gegevens. Anders dan dit, is action class ook verantwoordelijk voorreageren op een gebruikersverzoek, bedrijfslogica uitvoeren. Het helpt het raamwerk ook bij het bepalen en retourneren van een resultaat op basis van het configuratiebestand (struts.xml), terug naar de gebruiker voor het renderen van de View-pagina.

Stuts2-actieklassen zijn niet singleton van aard, dat wil zeggen dat er bij elk verzoek één exemplaar van deze klasse wordt gemaakt. Ze hoeven dus niet draadveilig te zijn en zijn eenvoudig en onafhankelijk. Dit maakt het testen van deze klassen veel gemakkelijker.

Een actiebestand kan op drie manieren worden gemaakt, namelijk:

  • Eenvoudige actieklasse
    Elke concrete java-klasse kan worden gebruikt als een Struts 2-actieklasse, maar de enige vereiste is dat de klasse een methode execute () moet bevatten met het retourtype String. Hieronder staat de code om een ​​eenvoudige actieklasse te maken:
pakket com.edureka.struts2.action openbare klasse DemoAction {openbare String execute () {retourneer 'Welkom!' }}
  • Actie-interface implementeren
    Een Struts 2 Action-klasse kan ook worden gemaakt door de interface com.opensymphony.xwork2.Action te implementeren. Het bevat een enkele methode, d.w.z. execute (), die moet worden geïmplementeerd door de implementerende klasse. Door deze interface te implementeren kunt u gebruik maken van verschillende constanten zoals SUCCESS, ERROR, NONE, INPUT en LOGIN die gebruikt kunnen worden voor de resultaatpagina's.
    Onderstaande code toont een voorbeeld voor hetzelfde:
pakket com.edureka.struts2.action import com.opensymphony.xwork2.Action public class DemoAction implementeert actie {public String execute () {return SUCCESS}}
  • Uitbreiding ActionSupport Class

Actieklassen in Struts 2 breiden over het algemeen de Action Support-klasse uit, wat de standaardimplementatie is van de Action-interface. Het biedt verschillende noodzakelijke functionaliteiten voor de ontwikkeling van webapplicaties, zoals gegevensvalidatie, actieniveau-bericht, actieniveau-foutbericht, veld-niveau foutbericht en gebundelde leesbronnen, enz.

Hieronder is de implementatie van hetzelfde:

pakket com.edureka.struts2.action import com.opensymphony.xwork2.ActionSupport openbare klasse DemoAction breidt ActionSupport uit {@Override public String execute () gooit Uitzondering {return SUCCESS}}

3. Onderscheppers

Interceptor fungeert als een van de belangrijkste pijlers van het Struts 2-raamwerk. Het is niets anders dan een objectdie wordt aangeroepen tijdens de voor- en nabewerking van een verzoek.Het helpt bij het beheersen en onderhouden van de soepele overgang van verzoek- en antwoordcyclus.

Het belangrijkste voordeel van het gebruik van interceptors is dat deze inplugbaar is. Wat ik bedoel is, voor het geval je geen gebruik meer hebt van een specifiek probleem zoalsvalidatie, afhandeling van uitzonderingen, logboekregistratie, enz., u kunt het gemakkelijk uit de applicatie verwijderen zonder het opnieuw te hoeven implementeren. Hiervoor hoeft u alleen het item uit het bestand struts.xml te verwijderen.

Het Struts2-framework biedt een uitgebreide set van vooraf gedefinieerde interceptors en gemeenschappelijke interceptorstapels die ik in de onderstaande tabel heb opgesomd:

Onderschepper Omschrijving
alias Hierdoor kunnen de parameters verschillende naamaliassen hebben voor alle gebruikersverzoeken
selectievakje Dit helpt bij het beheren van selectievakjes door de parameterwaarde false toe te voegen, want de selectievakjes zijn niet aangevinkt
conversionError Hierdoor wordt de foutinformatie van het converteren van strings naar parametertypen binnen de veldfouten van de actie geplaatst
createSession Dit creëert impliciet een HTTP-sessie voor het geval die niet bestaat
debuggen Dit biedt de ontwikkelaar verschillende foutopsporingsschermen
execAndWait Dit brengt de gebruiker door naar een tussenliggende wachtpagina wanneer de actie op de achtergrond wordt uitgevoerd
uitzondering Dit brengt de uitzonderingen in kaart die van actie naar een resultaat worden geworpen
bestand upload Dit vergemakkelijkt het eenvoudig uploaden van bestanden in Struts 2
i18n Dit helpt bij het bijhouden van de opgegeven landinstelling tijdens de sessie van een gebruiker
logboeken Dit zorgt voor een eenvoudige logboekregistratie voor de gebruiker door de uitvoer te genereren als de naam van de actie die wordt uitgevoerd
params Dit helpt bij het instellen van de verzoekparameters voor de actie
bereiden Dit wordt gebruikt om voorbewerkingswerkzaamheden uit te voeren
profiel Dit maakt eenvoudige profielinformatie mogelijk voor het registreren van acties.
reikwijdte Hiermee wordt de status van de actie opgeslagen en opgehaald tijdens de gebruikerssessie of het toepassingsbereik
ServletConfig Dit biedt de actie toegang tot verschillende op servlet gebaseerde informatie
timer Dit levert eenvoudige profileringsinformatie op
teken Dit helpt bij het controleren van de actie op een geldig token om dubbele formulierinzendingen te voorkomen
validatie Dit biedt validatieondersteuning voor verschillende acties

4. Waardestapel

ValueStackin Struts2 is het opslaggebied waar de volledige app-gegevens worden opgeslagen voor het verwerken van een verzoek. Deze gegevens worden bewaard in hetActionContextobjecten die gebruik maken van deThreadLocalvoor het ophalen van de waarden die specifiek zijn voor een specifieke clientverzoekthread.

5. OGNL

OGNL staat voor Object-Graph Navigation Language. Het is een krachtige expressietaal net als JSP en wordt meestal gebruikt voor dereferentie en manipulatie van gegevens die aanwezig zijn in de ValueStack. Bovendien helpt het ook bij het overbrengen en converteren van het type gegevens.

Net als bij JSP bevat OGNL een root-object binnen de toepassingscontext. U kunt dus de referentie van het standaardobject opgeven met behulp van markup-notatie, die in dit geval wordt aangegeven met een pond-symbool. Het Struts 2-framework implementeert OGNL door een ActionContext-kaart te bouwen. Hieronder heb ik de componenten van de ActionContext-kaart opgesomd:

  • Toepassing
  • Sessie
  • Waardestapel
  • Verzoek
  • Parameters
  • Attributen

Hiermee ben je door de basis van Struts 2. In de volgende sectie van dit Struts 2-artikel laten we direct in de code springen en alles wat je tot nu toe hebt geleerd implementeren.

hoe u een app maakt in salesforce

Struts 2 Tutorial Demo

Hier zal ik een eenvoudige applicatie maken waarin u uw naam moet invoeren en de applicatie zal u verwelkomen. Hieronder ziet u de screenshot van de volledige projectstructuur:

Zoals je kunt zien, zullen we in dit project 5 bestanden maken die:

  1. HelloWorld.java
  2. index.jsp
  3. welkom.jsp
  4. web.xml
  5. struts.xml

Opmerking: Voordat u met dit project begint, moet u ervoor zorgen dat Tomcat al op uw systeem is geïnstalleerd.

STAP I: Ga in je Eclipse naar Bestand> Nieuw> Dynamisch webproject. Voer de projectnaam in en klik op New Runtime.

STAP II: Hier moet u de versie van Apache Tomcat selecteren die u op uw systeem hebt gedownload en op Volgende klikken.

STAP III: Klik vervolgens op Bladeren en navigeer naar de map waar Tomcat-afhankelijkheden zijn opgeslagen. Als u klaar bent, klikt u op Voltooien en gaat u verder met het maken van het project.

STAP IV: Laten we nu de jar-bestanden van Struts toevoegen die nodig zijn voor de succesvolle uitvoering van dit project. U kunt de JAR's downloaden van hier . Zodra u klaar bent met de JAR-bestanden, kopieert u de JAR's en plakt u ze onder WebContent> WEB-INF> lib.

STAP V: Nu we klaar zijn met alle configuraties, kunnen we de codebestanden instellen, te beginnen met HelloWorld.java. Klik hiervoor met de rechtermuisknop op het project> Nieuw> Klasse. Vul het pakket en de klassenaam in en klik op voltooien.

STAP VI: Typ de onderstaande code in het HelloWorld.java het dossier.

pakket com.edureka public class HelloWorld {private String name public String getName () {return name} public void setName (String name) {this.name = name} public String execute () {return 'success'}}

STAP VII: Maak vervolgens een nieuw index.jsp bestand onder WebContent en typ de onderstaande code in:

 

STAP VIII: Maak nu opnieuw een nieuw welkom.jsp bestand onder WebContent en typ de onderstaande code in:

Welkom:

STAP IX: Ga nu naar WebContent> WEB-INF en typ de onderstaande code in het web.xml het dossier.

Struts2Demo index.html struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareandExecuteFilter struts2 / *

STAP X: Maak ten slotte onder Java-bronnen> src struts.xml het dossier

welkom.jsp

STAP XI: Ga nu naar de index.jsp pagina en klik er met de rechtermuisknop op. Selecteer Uitvoeren op server om de applicatie uit te voeren.

Dit brengt ons bij het einde van dit artikel over Struts 2 Tutorial. Als u meer wilt weten over Java, kunt u onze .

Nu je hebt begrepen wat een Struts 2 Tutorial is, kun je het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java-ontwikkelaar willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel de kern als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in de commentarensectie van dit 'Struts 2 Tutorial' -artikel en we nemen zo snel mogelijk contact met u op.