0% ont trouvé ce document utile (0 vote)
197 vues26 pages

Guide Struts 2 pour Développeurs Java

Ce document décrit le framework Struts 2 en Java. Il explique l'architecture MVC, le cycle de vie d'une requête, la configuration avec les fichiers web.xml et struts.xml, les actions, interceptors et validation.

Transféré par

wael zf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
197 vues26 pages

Guide Struts 2 pour Développeurs Java

Ce document décrit le framework Struts 2 en Java. Il explique l'architecture MVC, le cycle de vie d'une requête, la configuration avec les fichiers web.xml et struts.xml, les actions, interceptors et validation.

Transféré par

wael zf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Struts2

Khadija FERJANI
tutorialspoint.
Struts 2
● Struts 2 est un framework extensible de
création des applications web en java.
Architecture
● Model View Controller (MVC).
● Model – Le niveau le plus pas du pattern.
Responsable de la gestion des informations.
● View – C'est le niveau responsible d'afficher les
informations à l'utilisateur.
● Controller – C'est le niveau qui controle les
interaction entre le modèle et la vue.
MVC2
Cycle
● L'utilisateur envoie une requête au serveur pour
demander des resources (pages, ..).
● Le FilterDispatcher traite la requête et détermine la bonne
Action.
● Les intercepteurs configurés sont exécutés (validation, ..).
● L'action est exécutée pour effectuer l'opération
demandée.
● A nouveau, les intercepteurs configurés sont exécutés
(validation, ..).
● Pour finir, le résultat est préparé par la View et le résultat
est retourné à l'utilisateur.
[Link]
● Le fichier de configration [Link] est un fichier
de configuration JEE.
● Il détermine comment le servlet container traite
les requêtes HTTP.
● C'est le point d'entrée d'une application web.
● Le point d'entrée d'une application Struts2
application est un filtre (FilterDispatcher) qui est
défini dans le [Link] (deployment descriptor).
● <?xml version="1.0" encoding="UTF-8"?>
● <web-app
xmlns:xsi="[Link]
● xmlns="[Link]

xmlns:web="[Link]
xsd"
● xsi:schemaLocation="[Link]
● [Link]
● id="WebApp_ID" version="3.0">

● <display-name>Struts 2</display-name>
● <welcome-file-list>
● <welcome-file>[Link]</welcome-file>
● </welcome-file-list>
● <filter>
● <filter-name>struts2</filter-name>
● <filter-class>
● [Link]
● </filter-class>
● </filter>

● <filter-mapping>
● <filter-name>struts2</filter-name>
● <url-pattern>/*</url-pattern>
● </filter-mapping>

● </web-app>
[Link]
● Le fichier [Link] file contient les informations
de configuration.
● Les informations seront modifiées au cours de
développement des actions.
● Ce fichier permet de surcharger les
configurations par défaut, par exemple
[Link] = false
● <struts>
● <constant name="[Link]" value="true" />
● <package name="helloworld" extends="struts-default">

● <action name="hello"
● class="[Link]"
● method="execute">
● <result name="success">/[Link]</result>
● </action>

● </package>

● </struts>
Actions
● Les actions sont le core du framework Struts2.
● Chaque URL est mappée à une action spécifique
qui fournit le traitement nécessaire pour répondre
à la requête de l'utilisateur.
● Les actions jouent un role important dans le
transfert d'informations à la vue (JSP, Velocity, ..)
● Les actions “aident” le framework à décider du
résulat qu'il faut retourner à la vue en tant que
réponse à une requête.
Actions - Conditions
● Une méthode sans argument (ex execute)
● Cette méthode doit retourner une String ou un
objet de type Result.
● L'action doit être un POJO.
● Une action peut hériter de la classe
ActionSupport qui implémente six interfaces (y
compris l'interface Action).
Interface Action
● public interface Action {
● public static final String SUCCESS = "success";
● public static final String NONE = "none";
● public static final String ERROR = "error";
● public static final String INPUT = "input";
● public static final String LOGIN = "login";
● public String execute() throws Exception;
● }
HelloWorldAction
● package [Link].struts2;

● public class HelloWorldAction{


● private String name;

● public String execute() throws Exception {


● if ("SECRET".equals(name))
● {
● return SUCCESS;
● }else{
● return ERROR;
● }
● }
● // getter and setter
● }
[Link]
● <struts>
● <constant name="[Link]" value="true" />
● <package name="helloworld" extends="struts-default">
● <action name="hello"
● class="[Link]"
● method="execute">
● <result name="success">/[Link]</result>
● <result name="error">/[Link]</result>
● </action>
● </package>
● </struts>
Interceptors
● Les intercepteurs sont conceptuellement
l'équivalent des proxy dans JDK.
● Ils permettent d'assurer qu'une fonctionnalité sera
exécutée indépendament d'une action.
● Les intercepteurs peuvent assurer :
● Fournit de la logique de pré-processing.
● Fournit de la logique de post-processing.
● Catche les exceptions
Exemples
● Exception: Lie les exceptions throwées d'une action à
un resultat.
● FileUpload: Permet l'upload de fichier
● I18n: Garde l'information “locale” durant une session.
● Params: Permet de setter les paramètres d'une action.
● Validation: Offre un support de validation pour les
actions
● Timer: La durée d'exécution d'une action.
[Link]
● <action name="hello"

class="[Link]"
● method="execute">
● <interceptor-ref name="params"/>
● <interceptor-ref name="timer" />
● <result name="success">/[Link]</result>
● </action>
Stacking
● <interceptor-stack name="basicStack">
● <interceptor-ref name="exception"/>
● <interceptor-ref name="servlet-config"/>
● <interceptor-ref name="prepare"/>
● <interceptor-ref name="checkbox"/>
● <interceptor-ref name="params"/>
● <interceptor-ref name="conversionError"/>
● </interceptor-stack>
● <action name="hello"
class="[Link]">
● <interceptor-ref name="basicStack"/>
● <result>[Link]</result>
● </action>
Validation
● Définir la méthode “validate”
● Validation basée sur XML
● public class Employee extends ActionSupport{
● private String name;
● private int age;

● public String execute()


● {
● return SUCCESS;
● }
● //Gets and sets
● public void validate()
● {
● if (name == null || [Link]().equals(""))
● {
● addFieldError("name","The name is required");
● }
● if (age < 28 || age > 65)
● {
● addFieldError("age","Age must be in between 28 and 65");
● }
● }
● }
[Link]
● <action name="empinfo"
● class="[Link]"
● method="execute">
● <result name="input">/[Link]</result>
● <result
name="success">/[Link]</result>
● </action>
Exemple: [Link]
● <validators>
● <field name="name">
● <field-validator type="required">
● <message>
● The name is required.
● </message>
● </field-validator>
● </field>
Exemple: [Link]
● <field name="age">
● <field-validator type="int">
● <param name="min">29</param>
● <param name="max">64</param>
● <message>
● Age must be in between 28 and 65
● </message>
● </field-validator>
● </field>
● </validators>

Vous aimerez peut-être aussi