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] enchainement de pages


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    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
    Par défaut
    Tu es sûr que dans ta page QueryOnDemand.jsp tu n'as pas une référence à l'attribut tblEvent ?

    Faut vraiment que tu vérifies que tu as les méthodes get et set sur tous les attributs de chacun de tes formulaires dans tes ActionForm.

    Peux-tu me montrer le code de ton ActionForm ?
    Et celui de ta jsp QueryOnDemand.jsp (ce qu'il y a dans le html:form) ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Par défaut
    j'ai vraiment plus trop d'idées, je vais tout poster

    1) lien pour lancer la première page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:link page="/InitQueryOnDemand.do">Query on demand</html:link>
    2) webxml : action /InitQueryOnDemand

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form-bean name="formInitQueryOnDemand" type="bank.fortis.strutsloggingprojectwar.forms.FormInitQueryOnDemand">
    		</form-bean>
     
    <action
    			path="/InitQueryOnDemand"
    			type="bank.fortis.strutsloggingprojectwar.actions.ActionInitQueryOnDemand"
    			name="formInitQueryOnDemand"
    			scope="request" 
    			validate="false">
    			<forward name="success" path="/QueryOnDemand.jsp"/>
    			<forward name="error"   path="/last.jsp"/>
    		</action>
    3) le form bean possède tout les champs car ils sont générés par wsad

    4) l'action form à l'init

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     
    public class ActionInitQueryOnDemand extends Action {
     
    	public ActionForward execute(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws Exception {
     
    		ActionErrors errors = new ActionErrors();
    		ActionForward forward = new ActionForward(); // return value
    		FormInitQueryOnDemand formQueryOnDemand = (FormInitQueryOnDemand) form;
     
    		try {
     
    			// do something here
     
    		} catch (Exception e) {
     
    			// Report the error using the appropriate name and ID.
    			errors.add("name", new ActionError("id"));
     
    		}
     
    		// If a message is required, save the specified key(s)
    		// into the request for use by the <struts:errors> tag.
     
    		if (!errors.isEmpty()) {
    			saveErrors(request, errors);
     
    			// Forward control to the appropriate 'failure' URI (change name as desired)
    			//	forward = mapping.findForward("failure");
     
    		} else {
     
    			// Forward control to the appropriate 'success' URI (change name as desired)
    			// forward = mapping.findForward("success");
     
    		}
    		// Finish with
     
    		// METTRE CE CODE DANS ACTION QUERY ON DEMAND 2 ?
    		/*HttpSession session = request.getSession(true);
     
    		QueryOnDemand query = (QueryOnDemand) request.getSession().getAttribute("QueryOnD"); 		
    		if (query == null)
    		{
    			query = new QueryOnDemand();
    			System.out.println("création objet QueryOnD");
    		} else System.out.println("objet QueryOnD récupéré");
     
    		query.initWhere(request.getParameter("eventMessageId"), request.getParameter("eventFlowType"), request.getParameter("eventUserID"), request.getParameter("eventMsgType"), request.getParameter("eventCorrelationID"), request.getParameter("eventReplyToQ"),request.getParameter("eventReplyToQMgr"),request.getParameter("eventSourceQueue"),request.getParameter("eventPutAppName"),
    		request.getParameter("timeStmpQuery"),request.getParameter("day1"),request.getParameter("day2"),request.getParameter("eventTRS"),request.getParameter("appCode"),request.getParameter("eventType"),request.getParameter("eventSeverity"), request.getParameter("eventBrokerName"),request.getParameter("exceptMessageID"),request.getParameter("exceptLabelName"),request.getParameter("exceptReason"),request.getParameter("exceptMsgSet"),request.getParameter("exceptNLSNumber"), request.getParameter("environment"));    
     
    		session.setAttribute("QueryOnD",query);
     
    		System.out.println("QueryOnDemand : Action");*/ 
     
    		//if (request.getParameter("action").equals("init"))
    			return (mapping.findForward("success"));
    		//else return (mapping.findForward("suite"));
    	}
    }
    5) la page jsp queryOnDemand

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:form action="/QueryOnDemand" method="post">
    ...
    </html:form>
    6) l'action QueryOnDemand

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <action
    			path="/QueryOnDemand"
    			type="bank.fortis.strutsloggingprojectwar.actions.ActionQueryOnDemand"			
    			name="formInitQueryOnDemand"
    			scope="request" 
    			validate="false" >
    			<forward name="success" path="/QueryOnDemand2.jsp"/>
    			<forward name="error" path="/last.jsp"/>
    		</action>
    7) la classe action ActionQueryOnDemand

    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
     
    public class ActionQueryOnDemand extends Action {
     
    	public ActionForward execute(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws Exception {
     
    		ActionErrors errors = new ActionErrors();
    		ActionForward forward = new ActionForward(); // return value
     
    		try {
     
    			// do something here
     
    		} catch (Exception e) {
     
    			// Report the error using the appropriate name and ID.
    			errors.add("name", new ActionError("id"));
     
    		}
     
    		// If a message is required, save the specified key(s)
    		// into the request for use by the <struts:errors> tag.
     
    		if (!errors.isEmpty()) {
    			saveErrors(request, errors);
     
    			// Forward control to the appropriate 'failure' URI (change name as desired)
    			//	forward = mapping.findForward("failure");
     
    		} else {
     
    			// Forward control to the appropriate 'success' URI (change name as desired)
    			// forward = mapping.findForward("success");
     
    		}
     
    		// Finish with
    		return (mapping.findForward("success"));
     
    	}
    }
    8), quand je clique maintenant sur le lien de la première page, j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot find bean under name formQueryOnDemand'
    alors que je n'ai plus rien sous le nom de formQueryOnDemand dans le struts-config.xml,... je comprend plus rien,...

  3. #3
    Expert confirmé

    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
    Par défaut
    Y aurait beaucoup de choses à corriger dans ton code mais on va essayer de faire au plus simple pour le faire marcher, sans trop le modifier.

    Citation Envoyé par mlequim
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot find bean under name formQueryOnDemand'
    alors que je n'ai plus rien sous le nom de formQueryOnDemand dans le struts-config.xml,... je comprend plus rien,...
    Si, tu fais bien référence à formQueryOnDemand dans la méthode execute() de ton Action ActionInitQueryOnDemand ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormInitQueryOnDemand formQueryOnDemand = (FormInitQueryOnDemand) form;
    Donc, enlève cette ligne-là parce qu'à aucun moment dans ton Action tu utilises formQueryOnDemand.
    Je ne pensais pas que tu initialisais ton formulaire de cette façon. Mais tu m'as dit que ça marchait non ?
    Donc, essaie de remettre l'ancien formulaire FormQueryOnDemand2 sur ton action QueryOnDemand.

    Ensuite, pourrais-tu supprimer ou mettre en commentaire la ligne suivante dans tes deux Actions parce que ça ne sert à rien et que ça a peut-être une incidence sur tes problèmes de forward :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActionForward forward = new ActionForward();
    Dans le message d'erreur suivant, il est question d'un attribut eventMessageID avec un I et un D majuscule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [ServletException in:bQueryOnDemand.jsp] No getter method for property eventMessageID of bean org.apache.struts.taglib.html.BEAN'
    or dans ton Action, je vois coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("eventMessageId")
    il faudrait que les deux soit écrits de la même façon !

    Essaie avec ces quelques modifs et dis-moi si ça marche mieux.
    Si j'avais un peu plus de temps, je te montrerais comment coder mieux tes classes Action.

  4. #4
    Expert confirmé

    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
    Par défaut
    Y a quand même quelque chose que je ne comprends pas.
    Dans l'action InitQueryOnDemand que tu appelles via un html:link, tu codes des request.getParameter() sur plusieurs attributs.
    Dans quel page jsp ces attributs sont-ils renseignés ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Par défaut
    ha non ceux là ils sont en commentaire depuis ton explication , c'était encore quand je ne comprenais pas bien comment tout cela fonctionnait. Maintenant je sais qu'il faudra que je les mette dans l'action QueryOnDemand, comme ça je récupérerai tout les paramètres dans request et je les enverrai à un objet session.

  6. #6
    Expert confirmé

    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
    Par défaut
    ok. jette un oeil à ma réponse d'hier soir et dis-moi si ça marche mieux ensuite.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Par défaut
    Citation Envoyé par c_nvy
    Y aurait beaucoup de choses à corriger dans ton code mais on va essayer de faire au plus simple pour le faire marcher, sans trop le modifier.

    Citation Envoyé par mlequim
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot find bean under name formQueryOnDemand'
    alors que je n'ai plus rien sous le nom de formQueryOnDemand dans le struts-config.xml,... je comprend plus rien,...
    Si, tu fais bien référence à formQueryOnDemand dans la méthode execute() de ton Action ActionInitQueryOnDemand ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormInitQueryOnDemand formQueryOnDemand = (FormInitQueryOnDemand) form;
    Donc, enlève cette ligne-là parce qu'à aucun moment dans ton Action tu utilises formQueryOnDemand.
    Je ne pensais pas que tu initialisais ton formulaire de cette façon. Mais tu m'as dit que ça marchait non ?
    Donc, essaie de remettre l'ancien formulaire FormQueryOnDemand2 sur ton action QueryOnDemand.

    Ensuite, pourrais-tu supprimer ou mettre en commentaire la ligne suivante dans tes deux Actions parce que ça ne sert à rien et que ça a peut-être une incidence sur tes problèmes de forward :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActionForward forward = new ActionForward();
    Dans le message d'erreur suivant, il est question d'un attribut eventMessageID avec un I et un D majuscule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [ServletException in:bQueryOnDemand.jsp] No getter method for property eventMessageID of bean org.apache.struts.taglib.html.BEAN'
    or dans ton Action, je vois coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("eventMessageId")
    il faudrait que les deux soit écrits de la même façon !

    Essaie avec ces quelques modifs et dis-moi si ça marche mieux.
    Si j'avais un peu plus de temps, je te montrerais comment coder mieux tes classes Action.
    ça marche !! Mille fois mercis !! en fait,... toute mon application marche ! en plus je change de poste et on m'avait demander de finir tout mes projets pour la fin de la semaine donc t'imagines pas à quel point tu m'as aidé !

    t'es patiente tout de même

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Par défaut
    merci aussi à Ze_key, tu m'as beaucoup aidé toi aussi !

    et je voudrais aussi remercier ma mère sans qui je n'aurait pas été là 8) , puis ma copine pour son soutient moral, et bien sur mon lapin sans qui je n'aurait rien pu faire

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Struts] Redirections de pages en fonction de l'action
    Par lavienormale dans le forum Struts 1
    Réponses: 0
    Dernier message: 05/05/2011, 16h56
  2. [JSP][Actions Struts] Rechargement de page
    Par Manson dans le forum Struts 2
    Réponses: 2
    Dernier message: 30/09/2009, 16h29
  3. struts et la page indisponible :s
    Par btissama4 dans le forum Struts 1
    Réponses: 13
    Dernier message: 11/12/2008, 17h09
  4. [STRUTS] avoir des pages d'erreur differente
    Par jeb001 dans le forum Struts 1
    Réponses: 6
    Dernier message: 09/11/2005, 17h32
  5. [Rave reports] enchainement de pages
    Par aharel dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/10/2005, 11h23

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