Version Française du site J2EE
Tutoriaux / outils Java
 
Lien Java Utils
CodesSources

MoteurProg

JM.Doudoux

Laboratoire SUN
 
Professionnel

Curriculum vitae

Projets scolaires

Projets professionels

 
Mots clés
sonnerie bluetooth
sonnerie bluetooth
je t%27aime.gif
partage sonnerie
trouver un jar
stephane-arnault
stephane-arnault
sonnerie gratuite pour portable
bluetooth téléchargement gratuit
sonnerie vache gratuite
sonnerie vache gratuite
gif gratuit telephone portable
sonnerie mp3 pour portable gratuit
mobile sonnerie extrait gratuit
mobile sonnerie extrait gratuit
 
Stats
Visiteurs: 98287
Aujourdhui: 75
Connectés: 2
 
 

Document incomplet, en cours de rédaction

présentation:
Struts est un framework qui fourni à la fois une organisation MVC de l'application web,
mais aussi un framework de présentation puisqu'il contient de nombreuses taglib permettant de gérer efficassement l'affichage.
Nous allons dans ce document créer pas à pas une mini application Struts permettant de gérer un carnet d'adresse.
Nous ne verrons pas comment utiliser les taglib, mais uniquement comment utiliser struts pour décomposer l'application selon un modèle mvc.



Pré-requis:
Eclipse et le plug ins WTP (Web Tool Plateform)
Struts

Etape1: Identifier les "use-case" et créer les actions correspondantes.
Dans le cas de notre carnet d'adresse, on va se contenter de 4 cas d'utilisation: lire, modifier, ajouter, supprimer une fiche.
Les cas d'utilisations sont représentés dans Struts par des actions, c'est à dire des classes héritants de la classe "org.apache.struts.action.Action".
Nous allons donc créer nos 4 classes Action qui doivent respecter la structure minimale suivante:

public class DisplayAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {
        return mapping.findForward("ok");
    }
}

note1: cette action ne fais absolument rien, si ce n'est une redirection qu'on expliquera plus tard.
note2: par convention, une classe Action fini toujours par  "Action" et doit porter un nom explicite.
Nos quatre actions pourraient s'appeler DisplayAction, AddAction, ModifAction et RemoveAction.

Etape 2: Mapper les Actions définies
Il s'agit maintenant de fournir une URL qui sera redirigée vers une action.
Le choix le plus courant est de spécifier dans le fichier web.xml que toutes les requetes terminants par .do seront redirigées vers la servlet Action de struts.
Ainsi, l'URL http://localhost:8080/monProjet/ajouteFiche.do sera gérée par struts.
Pour cela, ajouter le code xml suivant dans web.xml à en dessous de l'élément racine "web-app".

    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>
            org.apache.struts.action.ActionServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

Il faut maintenant indiquer à struts que "ajouteFiche.do" correspond à l'action AddAction.

pour cela, on créé un fichier struts-config.xml dans le répertoire web-inf.

Etape 3: gérer l'affichage
Notre application est inutilisable pour le moment puisque nous n'affichons rien dans le navigateur.
La présentation sera effectuée par de simple pages JSP.
Vous vous souvenez du mystérieux "return mapping.findForward("ok");" dans la méthode execute de notre Action?
nous allons pouvoir rediriger grâce à cette méthode l'action vers une JSP.

note: on peut rediriger vers différente JSP en fonction de certaines conditions.
Par exemple si un couple login/mot de passe est bon:
    return mapping.findForward("success");
mais si ce couple login/mot de passe est incorrect:
    return mapping.findForward("fail");

Bien sur nous devont spécifier dans le fichier struts-config.xml à quelle page jsp correspond le parametre qu'on à spécifié à findForward("ok");.
Voici les informations a mettre dans le fichier WEB-INF/struts-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"     "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
    <action-mappings>
        <action
            path="/display"
            type="action.ShowAction">
            <forward name="ok" path="/display.jsp" />
        </action>
    </action-mappings>
</struts-config>



Etape 3: Effectuer les traitements métiers:
Les traitements sont très simples a effectuer: lire une fiche, écrire une fiche, modifier une fiche et supprimer une fiche.
commençons par créer notre objet métier: une classe "bo.Personne" qui sera un javabean dont les propriétés sont String nom, et String numero.
puis une classe "dao.PersonneDAO" qui gèrera l'acces à nos "Personne" enregistrées.
Afin qu'une seule instance de "dao.PersonneDAO" soit chargée, on va utiliser le design pattern singleton:

public class PersonneDAO {
    static PersonneDAO pDAO;
    Vector listePersonnes;
   
    private PersonneDAO(){
        listePersonnes = new Vector();
    }
   
    public static PersonneDAO getInstance(){
        if (pDAO==null) pDAO = new PersonneDAO();
        return pDAO;
    }

    public void save(Personne p) {
        System.out.println("je sauve");
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("data.dat"));
            oos.writeObject(listePersonnes);
        } catch (Exception e) {
            e.printStackTrace();
        }
       
    }

    public Vector load() {
        System.out.println("je charge");
        ObjectInputStream ois;
        try {
            ois = new ObjectInputStream(new FileInputStream("data.dat"));
            listePersonnes = (Vector)ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return listePersonnes;
    }

}








Sujets
Auteur du sujet: None
Auteur de la derniere réponse: None
Date de la derniere réponse: 2008/05/13 20:45

Objet: None
Consulter les interventions
Auteur du sujet: None
Auteur de la derniere réponse: None
Date de la derniere réponse: 2008/05/13 20:45

Objet: None
Consulter les interventions
Auteur du sujet: None
Auteur de la derniere réponse: None
Date de la derniere réponse: 2008/05/13 16:23

Objet: None
Consulter les interventions
Auteur du sujet: None
Auteur de la derniere réponse: None
Date de la derniere réponse: 2008/05/13 16:23

Objet: None
Consulter les interventions
Auteur du sujet: liza
Auteur de la derniere réponse: liza
Date de la derniere réponse: 2008/05/09 22:55

Objet: OWNJqwtBwLpuINsuE
Consulter les interventions

Créer une nouvelle demande

Pseudo:
E-mail:
Objet:
message:

 
Passions
Guitare
A  B  C  D  E  F  G H  I  J  K  L  M  N O  P  Q  R  S  T  U V  W  X  Y  Z  0·9

Magie
 
Téléphone mobile
Contact

Stéphane ARNAULT
8 Rue Beauregard
93600 Aulnay / bois

06.88.32.34.28
Contact e-mail

 
Personnel

 
 
 

Copyright 2007
Stéphane ARNAULT