IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Struts & class


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut Struts & class
    Bonjour, voilà j'ai une classe Article qui me construit un article composée d'un corps et d'un titre.
    J'ai une page jsp comme suit qui me permet de rentrer le titre et le corps.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    html:form action="insererarticle">
            Titre de l'article :  <html:text property="article.titre" /><br />
            Corps de l'article :  <html:textarea  property="article.corps" /> <br />
            <html:submit>Envoyer</html:submit>
        </html:form>
    Et le truc c'est que j'aimerai bien que mon actionForm reprenne ma classe Article.
    Si je met ça dans mon ActionForm il me fait des erreurs!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
     private Article article;
     
         public Article getArticle() {
            return article;
        }
     
        public void setArticle(Article a) {
            article = a;
        }
    ....
    mon Action introduit dans ma base de données mon article.

    Merci de votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Bonjour,

    il ne devrais pas y avoir de problème.

    Quelle est l'erreur ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 85
    Par défaut c'est quoi les erreurs ?!
    Salut,

    Il faudrait que tu nous donnes les erreurs que ca te fait car sinon on
    ne va pas pouvoir t'aider :-/ Au moins cela orientera notre réponse.

    a+
    Xavier

  4. #4
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Voilà l'erreur que ça me génère:
    Invalid argument looking up property article.titre of bean org.apache.struts.taglib.html.BEAN

  5. #5
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Montre le code de ton ActionForm, mais je pense que tu dois juste mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:text property="titre" />

  6. #6
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Voilà mon ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    package com.myapp.struts;
    import JDOComponents.*;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    import java.util.*;
     
    public class ActionFormInsererArticle extends org.apache.struts.action.ActionForm {
     
        private Article article;
     
         public Article getArticle() {
            return article;
        }
     
        public void setArticle(Article a) {
            article = a;
        }
     
        public ActionFormInsererArticle() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
            ActionErrors errors = new ActionErrors();
     
            return errors;
        }
    }

  7. #7
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Avant d'aborder les problèmes que j'ai vu, tu peux nous donner la déclaration de ton action "insererarticle" dans le struts-config et la déclaration de l'ActionForm associée
    merci

  8. #8
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    d'accord je te donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <action-mappings>
     
            <action input="/" name="ActionFormInsererArticle" 
               path="/insererarticle" scope="session" type="com.myapp.struts.ActionInsererArticle" />
     
            <action path="/Welcome" forward="/welcomeStruts.jsp"/>
        </action-mappings>

  9. #9
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    <form-beans>
    <form-bean name="ActionFormInsererArticle" type="com.myapp.struts.ActionFormInsererArticle"/>
    </form-beans>

  10. #10
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Bien là je dois partir et j'aurai plus internet je vous retrouverez demain! Merci beaucoup pour votre aide et ne m'abandonnez pas !
    Bonne soirée

  11. #11
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Oki,
    Généralement l'ActionForm est un bean qui représente ta vue (page jsp) et non ton modèle (classe Article). Je t'accorde que ces deux classes peuvent se ressembler dans la plus part des cas.

    Mais dans ton ActionForm, tu vas redéfinir uniquement les champs dont tu as besoins dans ta page jsp : titre et corps avec les getters et les setters.
    ex : getTitre, setTitre (attention à respecter les majuscules).

    Et lorsque tu vas enregistrer ton article, tu vas récupérer ton ActionForm et créer un objet Article à partir de ce bean. Et c'est l'objet Article que tu enregistre dans la BD. Tu sépare ainsi le modèle, la vue et le contrôleur (principe de Struts)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Article unArticle = 
    new Article(actionFormInsererArticle.getTitre(), actionFormInsererArticle.getCorps());
    Je ne sais pas si je me suis bien fais comprendre ?

  12. #12
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Oui, je suis d'accord mais là j'ai juste donné un petit exemple j'ai plusieurs formulaire avec une dizaine de champs qui correspondent à mes attributs d'une autre classe les getters et setters sont deja implementé et je ne vais pas me réécrire tous mes getters et setters dans mon ActionForm !
    Il y a pas une aute solution ? ? ?

  13. #13
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Personnellement je ne vois pas trop comment tu pourrais faire pour "mélanger" tes beans form et tes classes modèles et je le déconseillerais.

    Par contre, tu travailles peut-être avec un IDE tel qu'Eclipse ? Si c'est le cas, il est capable de générer les getters et les setters tout seul à partir des attributs. (Un vrai truc de faignant)

  14. #14
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Non je travaille avec NetBeans mais j'ai vu un peu dans le forum qu'il y avait des tags nested:iterate j'ai repris leur modele mais ça ne fonctionne pas!

  15. #15
    Membre confirmé Avatar de dedeloux
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 104
    Par défaut
    Salut,
    Je suis d'accord avec supermanu.
    Si tu veux respecter l'architecture du framework Struts, tu dois séparer ta vue de ton controleur. Tu dois pour cela créer ta vue qui se compose de ta page JSP et d'un bean (ArticleForm) associé à cette page. Et puis tu auras ensuite ton ArticleAction qui te permettra de d'appeler ta partie métier. Tu devrais pouvoir trouver des exemples simples sur le net. Si jamais tu besoin de plus de précisions, je veux bien t'aider dans la mesure de mes connaissances !!

    Bon courage.

  16. #16
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Bonjour,
    Merci pour tes informations.
    Donc toi tu ferais comme manu, dans mon actionForm créer les getters et settes de titre et corps ?

  17. #17
    Membre confirmé Avatar de dedeloux
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 104
    Par défaut
    Oui, ça rejoint les réponses que tu as eu dans ton autre post. Je te donne un petit exemple simple :
    Voici ma page JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <nested:iteratename="adminUserListForm"id="ligne"property="collection"offset="offset"length="pageSize">
    <tdalign="left"nowrap>
    <nested:writeproperty="commonName"/>
    </td>
    <tdalign="left"nowrap>
    <nested:writeproperty="customerCode"/>
    </td>
    
    
    Mon bean ListForm associé à ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public class ListForm extends AbstractCollectionForm {
    /**
      * Signature de l'utilisateur
      */
     private String commonName = null;
     /**
      * Code client
      */
     private String customerCode = null;
    /**
      * Constructeur
      */
     public ListForm() {
      super();
      //Taille de la page 12 lignes
      setPageSize(12);
     }
    + setter et getter pour les propriétés customerCode et commonName
    }
    et enfin mon Action (ListAction) associée à cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class ListAction extends SecureAction{
     
    protected ActionForward doExecute(ActionMapping pMapping, ActionForm pForm, HttpServletRequest pRequest,
                HttpServletResponse pResponse) throws ApplicationException {
     
            ListForm form = (ListForm) pForm;
            ActionForward forward = pMapping.findForward("success"); 
    form.setAdminUserList(getAdminUserManager().initAdminUser(getUserSession(pRequest),form.getCommonName(),form.getCustomerCode(),form.getUserTypeCode()));
     }
    Voilà, je n'ai mis que de toutes petites parties mais je pense que tu auras des exmples plus simple sur le net.

    Si tu as des questions n'hésite pas.

Discussions similaires

  1. struts RequestProcessor class
    Par rezgui_fawzi dans le forum Struts 1
    Réponses: 12
    Dernier message: 03/03/2009, 18h04
  2. [JSP][STRUTS] Passer des objets à une classe action
    Par maphi dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/08/2005, 16h55
  3. [Struts]control dans la class form
    Par jimi dans le forum Struts 1
    Réponses: 8
    Dernier message: 01/06/2005, 16h50
  4. Réponses: 12
    Dernier message: 01/07/2004, 11h03
  5. [Struts][classe Action]Mettre un objet en parametre (suite)
    Par julienOriano dans le forum Struts 1
    Réponses: 6
    Dernier message: 16/06/2004, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo