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 :

probleme avec DispatchAction


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 26
    Points
    26
    Par défaut probleme avec DispatchAction
    bonsoir tout le monde,
    je suis entraint de developper une application web avec struts et j'utilise un dispatchAction dans une page qui fait:
    -une recherche
    -et un affichage des résultats dans la meme page sous forme lien
    -chaque lien en cliquant dessus doit normalement me dériger vers une autre page qui contient des informations plus complete sur le résultat de la 1ere page.
    donc j'ai besoin de passer un parametre avec ma requete qui est l'identifiant de chaque résultat.
    donc ma page enfin contien 2 actions le probleme est je ne peut pas mettre un boutton pour lancer la recherche et un lien pour les résultats car normalement ca ne fonctionne pas comme ca le DispatchAction.
    donc j'ai été obligé de transformer mon boutton Qui lance la recherche en un lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:link action="RechAction.do?do=rech">rechercher</html:link>
    le probleme est alors : le <html:link> rafréchit la page en cliquant dessus donc le contenu des champ est perdu et donc je ne peut pas le récupéré dans mon action et plus précisément dans la méthode "rech":
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    public class RechAction extends DispatchAction
    {
    	public ActionForward rech(ActionMapping mapping,
    			ActionForm form, 
    			HttpServletRequest request,
    			HttpServletResponse response)
    			throws ServletException, IOException 
    			{
    				RechBean frm=(RechBean)form;
    				DBAccess bd=new DBAccess();
    				if(frm.getChoix().length == 0)
    				{
    					ActionErrors errors=new ActionErrors();
    					errors.add("choix",new ActionError("recherche.erreur.choix.vide"));
    					saveErrors(request,errors);
    				}
     
    				else
    				{
    					ArrayList cand=bd.rechercher(frm.getChoix());
    					if(cand.size() > 0)
    					{
    						frm.setCand(cand);
    						request.getSession().setAttribute("test",new Boolean(true));
    					}
     
    					else
    						if(cand.size() == 0)
    						{
    							request.getSession().setAttribute("test",new Boolean(false));
    							frm.setCand(null);
    						}
    				}
    				return mapping.getInputForward();
    			}
     
    	public ActionForward aff(ActionMapping mapping,
    			ActionForm form, 
    			HttpServletRequest request,
    			HttpServletResponse response)
    			throws ServletException, IOException 
    			{
    				return mapping.findForward("afficher");
    			}
    }
    merci de m'aidé et s'il y a une autre solution pour ce faire je suis à l'écoute.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour ne pas perdre les valeurs, il faut mettre ton ActionForm RechBean dans le scope session.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 26
    Points
    26
    Par défaut
    si tu parle de ça c'est déja fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <action path="/RechAction"
    				type="actionRec.RechAction"
    				name="RechBean"
    				validate="true"
    				scope="session"
    				input="/Vues_2/recherche.jsp"
    				parameter="do">
    <forward name="afficher" path="/Vues_2/images/entretien.html"></forward>
    </action>
    c'est ca le probleme je ne compend pas !!!

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est une page html que tu affiches, ça ne va pas fonctionner

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 26
    Points
    26
    Par défaut
    merci pour la remarque mais il n'est pas arrivé la ça c'est le forward pour la 2eme methode dans ma class DispatchAction.
    le probleme est avec la 1ere methode qui a pour forward l'input du DispatchAction.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    As-tu essayé avec un bouton submit à la place du lien ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 26
    Points
    26
    Par défaut
    le probleme c'est que je ne peut pas utiliser un boutton car j'ai besoin de passer des parametre avec le lien et je ne sait pas si c'est fesable avec un boutton.
    alors voila ce que j'ai fait
    j'ai rétabli un boutton pour la recherche et une classe Action normal pour la page de recherche. mais pour les résultats générés sous forme de liens il font l'appel à un nouvel Action qui est un DispatchAction qui contient une methode portant le nom "aff" voila le lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <a href="InitEntretien.do?do=aff&id=<%=cd.getCv().getIdcv() %>">
    résultat
     </a>
    jusque ici je ne sais pas si c'est possible d'appeler de cette maniere une action
    en tout cas le lien me dérige vers l'action mais le probleme est que je ne sais pas comment acceder au parametre que j'ai passé dans l'url qui s'appel "id".
    j'ai fait ceci :
    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
    public class InitEntretien extends DispatchAction
    {
    	public ActionForward aff(ActionMapping mapping,
    			ActionForm form, 
    			HttpServletRequest request,
    			HttpServletResponse response)
    			throws ServletException, IOException 
    			{
    				beanRec.EntretienBean frm=(beanRec.EntretienBean)form;
    				Integer i=(Integer)request.getAttribute("id");
    				DBAccess bd=new DBAccess();
    				frm.getEntr().setCv(bd.getCand(i.intValue()));				bd.deconnect();
    				return mapping.findForward("afficher");
    			}
    }
    mais il me genere une exception nullPointerException au niveau de la ligne en gras.
    merci

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour récupérer l'id passé en paramètre de l'Action, essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String id = request.getParameter("id");
    int i = Integer.parseInt(id) ;

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 26
    Points
    26
    Par défaut
    merci c'est exactement ça et àa marche

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 26
    Points
    26
    Par défaut
    merci c'est exactement ça et
    ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec le DispatchAction
    Par Viscapon dans le forum Struts 1
    Réponses: 31
    Dernier message: 14/12/2008, 18h25
  2. Probleme avec DispatchAction
    Par tomy29 dans le forum Struts 1
    Réponses: 20
    Dernier message: 06/11/2008, 16h09
  3. Probleme avec DispatchAction
    Par L Ankou dans le forum Struts 1
    Réponses: 3
    Dernier message: 11/02/2008, 09h56
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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