Académique Documents
Professionnel Documents
Culture Documents
Struts 2
Struts 2
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.
web.xml
● Le fichier de configration web.xml 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 web.xml (deployment descriptor).
● <?xml version="1.0" encoding="UTF-8"?>
● <web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
● xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.
xsd"
● xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
● http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
● id="WebApp_ID" version="3.0">
● <display-name>Struts 2</display-name>
● <welcome-file-list>
● <welcome-file>index.jsp</welcome-file>
● </welcome-file-list>
● <filter>
● <filter-name>struts2</filter-name>
● <filter-class>
● org.apache.struts2.dispatcher.FilterDispatcher
● </filter-class>
● </filter>
●
● <filter-mapping>
● <filter-name>struts2</filter-name>
● <url-pattern>/*</url-pattern>
● </filter-mapping>
●
● </web-app>
Struts.xml
● Le fichier struts.xml 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
struts.devMode = false
● <struts>
● <constant name="struts.devMode" value="true" />
● <package name="helloworld" extends="struts-default">
●
● <action name="hello"
● class="com.tutorialspoint.struts2.HelloWorldAction"
● method="execute">
● <result name="success">/HelloWorld.jsp</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 com.tutorialspoint.struts2;
●
class="com.tutorialspoint.struts2.HelloWorldAction"
● method="execute">
● <interceptor-ref name="params"/>
● <interceptor-ref name="timer" />
● <result name="success">/HelloWorld.jsp</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="com.tutorialspoint.struts2.MyAction">
● <interceptor-ref name="basicStack"/>
● <result>view.jsp</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;
●