Une introduction rapide de Struts 2

Un rapide Struts 2 Intro

 

1. introduction

Apache Struts 2 est un framework basé sur MVC pour le développement d'applications Web Java d'entreprise. C'est une réécriture complète du framework Struts original. Il a une implémentation d'API open source et un riche ensemble de fonctionnalités.

In this tutorial, we will have a beginner’s introduction to different core components of the Struts2 framework. De plus, nous montrerons comment les utiliser.

2. Présentation du framework Struts 2

Certaines des fonctionnalités de Struts 2 sont:

  • Actions basées sur les POJO (vieux vieux objets Java)

  • prise en charge des plugins pour REST, AJAX, Hibernate, Spring, etc.

  • Convention sur la configuration

  • prise en charge de diverses technologies de couche de visualisation

  • facilité de profilage et de débogage

2.1. Différents composants de Struts2

Struts2 est un framework basé sur MVC, de sorte que les trois composants suivants seront présents dans toutes les applications Struts2:

  1. Action class – qui est une classe POJO (POJO signifie qu'il ne fait partie d'aucune hiérarchie de types et peut être utilisé comme classe autonome); nous mettrons en œuvre notre logique métier ici

  2. Controller – dans Struts2, les filtres HTTP sont utilisés comme contrôleurs; ils effectuent essentiellement des tâches telles que l'interception et la validation des demandes / réponses

  3. View – est utilisé pour présenter les données traitées; il s'agit généralement d'un fichier JSP

3. Conception de notre application

Continuons le développement de notre application Web. Il s'agit d'une application dans laquelle un utilisateur sélectionne une marqueCar particulière et est accueilli par un message personnalisé.

3.1. Dépendances Maven

Ajoutons les entrées suivantes auxpom.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

La dernière version des dépendances peut être trouvéehere.

3.2. Logique d'entreprise

Créons une classe d’actionCarAction qui renvoie un message pour une valeur d’entrée particulière. LeCarAction a deux champs -carName (utilisé pour stocker les entrées de l'utilisateur) etcarMessage (utilisé pour stocker le message personnalisé à afficher):

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
}

La classeCarAction utiliseCarMessageService qui fournit le message personnalisé pour une marqueCar:

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. Accepter l'entrée utilisateur

Ajoutons unJSP qui est un point d’entrée dans notre application. Ceci est un contenu du fichierinput.jsp:


    

Welcome to example Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

La balise <form> spécifie l'action (dans notre cas, il s'agit d'un URI HTTP auquel la requête GET doit être envoyée).

3.4. La partie contrôleur

StrutsPrepareAndExecuteFilter est le contrôleur, qui interceptera toutes les demandes entrantes. Nous devons enregistrer le filtre suivant dans lesweb.xml:


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



    struts2
    /*

StrutsPrepareAndExecuteFilter filtrera chaque requête entrante car nous spécifions l'URL correspondant au caractère générique<url-pattern>/ *

3.5. Configuration de l'application

Ajoutons les annotations suivantes à notre classe d'actionsCar:

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

Comprenons la logique de ces annotations. Le@Namespace est utilisé pour la séparation logique de l'URI de demande pour différentes classes d'action; nous devons inclure cette valeur dans notre demande.

De plus, le@Action indique le point final réel de l'URI de la demande qui atteindra notre classeAction. La classe d'action consulteCarMessageService et initialise la valeur d'une autre variable membrecarMessage. Une fois que la méthodeexecute() retourne une valeur,“success” dans notre cas, elle correspond à cette valeur pour appelerresult.jsp

Enfin, le@Result a deux paramètres. Premièrement,name, spécifie la valeur que notre classeAction retournera; cette valeur est renvoyée par la méthodeexecute() de la classeAction. This is the default method name which will be executed.

La deuxième partie,location,, indique à quel fichier se référer après que la méthodeexecute() a renvoyé une valeur. Ici, nous spécifions que lorsqueexecute() renvoie une chaîne avec la valeur «success», nous devons transmettre la requête àresult.jsp.

La même configuration peut être obtenue en fournissant un fichier de configuration XML:


    
        
            /result.jsp
        
    

3.6. La vue

C'est le contenu deresult.jsp qui sera utilisé pour présenter le message à l'utilisateur:

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

    

Hello example User

You are a

Il y a deux choses importantes à noter ici:

  • dans<@taglib prefix=”s” uri=”/struts-tags %> nous importons la bibliothèquestruts-tags

  • dans<s:property value=”carMessage”/>, nous utilisons la bibliothèquestruts-tags pour afficher la valeur d'une propriétécarMessage

4. Lancer l'application

Cette application Web peut être exécutée dans n'importe quel conteneur Web, par exemple dans Apache Tomcat. Ce sont les étapes nécessaires pour l'accomplir:

  1. Après avoir déployé l'application Web, ouvrez le navigateur et accédez à l'URL suivante:http://www.localhost.com:8080/MyStrutsApp/input.jsp

  2. Sélectionnez l'une des deux options et soumettez la demande.

  3. Vous serez redirigé vers la pageresult.jsp avec un message personnalisé basé sur l'option d'entrée sélectionnée

5. Conclusion

Dans ce didacticiel, nous avons expliqué pas à pas comment créer notre première application Web Struts2. Nous avons abordé différents aspects liés au MVC dans le domaine Struts2 et montré comment les combiner pour le développement.

Comme toujours, ce tutoriel peut être trouvéover on Github en tant que projet Maven.