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 :

récupérer les informations à partir du formulaire


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut récupérer les informations à partir du formulaire
    Bonjour tout le monde,

    J'ai un formulaire où j'ai deux champs lorsque je saisi un des deux champs, il m'affiche la valeur du champs saisi, mais si je saisis les deux champs en même temps, rien ne m'affiche, jai une page blanche.

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Le code STP (jsp + Action) !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    salut

    je ne comprend pas bien ton probleme

    mais si tu travaille avec J2EE tu peux recuperer la valeur de chaque champs avec la methode request.getParameter("nom de ton champ") te ensuite les afficher comme tu veux si c pas le cas explicite moi s'il te plait le probleme pour que je puisse te repondre

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je vous remercie

    Voici ma jsp:
    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
    <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %>
    <html:html>
    <head>
    <title></title>
    </head>
    <body>
    <html:form action="/action" focus="formulaire">
    	<table>
    		<tr>
    		  <td><bean:message key="index.nom"/></td>
    		  <td><html:text property="nom" size="20"/></td>
    		  </tr>
    		 <tr>
    		  <td><bean:message key="index.prenom"/></td>
    		  <td><html:text property="prenom" size="20"/>
    		 </tr>
    		 <tr>
    		 	<td><html:submit property="submit" value="envoyer"/></td>
    		 	<td><html:reset property="reset" value="Annuler"/></td>
    		 </tr>
    	</table>
     
    	<bean:write name="formulaire" property="nom"/>
    	<bean:write name="formulaire" property="prenom"/>
    </html:form>
    <html:errors/>
    </html:html>
    Voici formbean:
    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
     
    package bean;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
     
    /**
     * Servlet implementation class for Servlet: Personne
     *
     */
     public class Personne extends org.apache.struts.action.ActionForm  {
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	private String nom;
    	private String prenom;
     
    	public void setNom(String newnom)
    	{
    		this.nom=newnom;
    	}
     
    	public String getNom()
    	{
    		return this.nom;
    	}
     
    	public void setPrenom(String newprenom) 
    	{
    		this.prenom=newprenom;
    	}
    	public String getPrenom()
    	{
    		return this.prenom;
    	}
     
    	public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
    	{
    		ActionErrors errors=new ActionErrors();
     
    		if((this.getNom()==null)|| (this.getNom().length()==0))
    		{
    			errors.add("nom", new ActionError("errors.index.nom"));
    		}
    		 if((this.getPrenom()==null)|| (this.getPrenom().length()==0))
    		{
    			errors.add("prenom",new ActionError("errors.index.prenom"));
    		}
    	return errors;
    	}
    }
    Voici mon Beanaction:
    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
     
    package bean;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    /**
     * Servlet implementation class for Servlet: Personneaction
     *
     */
     public class Personneaction extends Action {
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	 public ActionForward execute (ActionMapping mapping,ActionForm form)
    	 {
    		//String nom=((Personne) form).getNom();
    		//String prenom=((Personne)form).getPrenom();
     
    		return mapping.findForward("resultat");
    	 }
    }
    Je vous remercie de votre aide

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    je ne vois pas pourquoi mais peu etre ca

    <td><html:text property="prenom" size="20"/>
    </tr>

    il fo fermer <td>

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Une erreur sans rapport avec ton problème, mais bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/action" focus="formulaire">
    focus doit contenir le nom d'un champ du formulaire que tu veux qu'il ait le focus !

    Sinon, pour être plus rigoureux, essaies ceci:
    dans
    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
     
    package bean;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    /**
     * Servlet implementation class for Servlet: Personneaction
     *
     */
     public class Personneaction extends Action {
     
    	 public ActionForward execute (ActionMapping mapping,ActionForm form)
    	 {
    		Personne p=(Personne) form;
    		request.getSession().setAttribute("Person", p);
     
    		return mapping.findForward("resultat");
    	 }
    }
    et dans ta JSP:
    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
     
    <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %>
    <html:html>
    <head>
    <title></title>
    </head>
    <body>
      <html:errors/>
      <html:form action="/action" focus="formulaire">
    	<bean:message key="index.nom"/>
    	<html:text property="nom" size="20"/>
     
    	<bean:message key="index.prenom"/>
    	<html:text property="prenom" size="20"/>
     
    	<html:submit property="submit" value="envoyer"/>
    	<html:reset property="reset" value="Annuler"/>	
    </html:form>
     
    <logic:present parameter="Person" scope="Session">
      <bean:write name="Person" property="nom"/>
      <br>
      <bean:write name="Person" property="prenom"/>
    </logic:present
    </html:html>
    RQ:J'ai enlevé les balises de mise en forme pour plus de clarité !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie modjo mais je viens de tester, ca fonctionne pas

    Par conséquent j'ai remis comme c'était avant.

    Pour rappeller mon problème le voici:

    J'ai un formulaire où j'ai deux champs lorsque je saisi un des deux champs, il m'affiche la valeur du champs saisi, mais si je saisis les deux champs en même temps, rien ne m'affiche, jai une page blanche.

    Je vous remercie de votre aide

  8. #8
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ton probleme est toujours le meme gentil tu codes des trucs sans avoir compris le but, et comment fontionne struts (je veux bien comprendre qu'au debut c'est un peu dur mais bon j'ai commencé il y a meme pas 3 mois donc c'est faisable).

    Donc pour une Nieme explication sur le focus (a tout tes post je te l'explique) la propriété FOCUS c'est pour que tu es le focus (si tu sais pas ce que c'est cherche une definition sur ) sur un champ précis. Si tu marque focus="formulaire" et que tu n'as pas de champs nommé "formulaire" ca ne sert a RIEN!

    Ensuite pour ton probleme, c'est simple, si tu affichés les erreur avec la balise <html:errors> tu comprendrais mieux. Si tu ne saisie qu'un seul champ lorsque tu valides ton document il va detecter une ERREUR (voir ta methode validate faut que tu l'as comprenne si tu l'as met). Donc il te renvoi vers ta page d'input (donc ta page ou sont presente tes affichages de valeur).

    Si tu saisis les 2 valeurs il n'y aura plus d'ERREUR. Donc il va passer dans ton action, et comme ton action renvoi vers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.findForward("resultat");

    Vu que tu n'as pas mis le struts-config on peut pas etre devin. Si tu renvoi vers ce forward il faut qu'il soit DEFINI dans l'action ou dans les globals forwards. Et je prends le parie que ce forward n'est pas bien défini ou voir meme pas du tout.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie maxf1.

    Je te donne mon fichier struts-config comme cela tu pourras me dire si il est bien configuré mais il me semble que oui.

    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
    <?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>
     <data-sources/>
     
     
     <form-beans type="org.apache.struts.action.ActionFormBean">
     <form-bean name="formulaire" type="bean.Personne"/>
     </form-beans>
     
     <global-exceptions/>
     <global-forwards/>
     
    <action-mappings type="org.apache.struts.action.ActionMapping">
     <action path="/action" input="/index.jsp" scope="request" name="formulaire" type="bean.Personneaction">
        <forward name="resultat" path="/index.jsp" redirect="false"/>
      </action>
     </action-mappings>
     
     <controller/>
     <message-resources null="false" parameter="controle_fr"/>
    </struts-config>
    Je te remercie de ton aide

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je viens de tester mon problème viens du forward, lorsque je saisi une des deux valeurs, il me forward bien vers la page index.jsp mais si je saisis les deux valeurs il me forward mais je ne sais pas vers quelle page.

    Je vous remercie de votre aide.

  11. #11
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    ton resultat est donc inutile dans ton cas vu que c'est 2 fois le meme fichier.
    Et si tu veux voir pourquoi ca ne marche pas avec resultat car il ma quand meme l'air d'etre correcte, regarde l'url complet de redirection.

    Info: si tu modifies ton struts-config en cours d'execution de ton serveur d'application redemarre le a chaque modification.

    remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.findForward("resultat");
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.getInputForward();
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu as un problème dans l'action, la signature n'est pas bonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    {
    ...
    }
    Ca ne risque pas de fonctionner avec la tienne...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je te remercie de ton aide.

    J'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.findForward("resultat");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.getInputForward();
    dans mon actionbean.

    Est ce que je dois modifier modifier struts-config car là je ne l'ai pas modifier là ca fonctionne toujours pas.

    Je vous remercie de votre aide.

  14. #14
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Citation Envoyé par OButterlin
    Tu as un problème dans l'action, la signature n'est pas bonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    {
    ...
    }
    Ca ne risque pas de fonctionner avec la tienne...
    Ah oui c'est clair meme pas vu. Si t'utilise eclipse essaye d'utiliser ses fonctions notamment pour implémenter des methodes (ca t'évitera de faire des boulettes aussi grosse que struts )
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Je vous remercie de votre aide.
    Je voulais savoir comme dans mon beanaction j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     public class Personneaction extends Action {
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	 public ActionForward execute (ActionMapping mapping,ActionForm form, HttpServletRequest Request, HttpServletResponse response)
    	 {
     
     
    			return mapping.getInputForward();
    	 }
    }
    Dans mon fichier struts-config, je ne sais ce que je dois mettre au niveau de mon action path

    Je vous remercie de votre aide

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut
    Au niveau du fichier struts-config, il faut mettre ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <action-mappings type="org.apache.struts.action.ActionMapping">
     <action path="/action" input="/index.jsp" scope="request" name="formulaire" type="bean.Personneaction">
      </action>
     </action-mappings>

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Dans le contrôleur, remet ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public ActionForward execute(...)
    {
    ...
       return mapping.findForward("resultat");
    }
    dans le fichier struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <action path="/action" input="/index.jsp" scope="request" name="formulaire" type="bean.Personneaction">
        <forward name="resultat" path="/index.jsp" redirect="false"/>
      </action>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/07/2011, 15h33
  2. Réponses: 47
    Dernier message: 09/05/2011, 13h21
  3. récupérer les informations d'un formulaire
    Par logtt12 dans le forum Langage
    Réponses: 6
    Dernier message: 18/01/2011, 13h05
  4. Réponses: 27
    Dernier message: 20/01/2010, 11h39
  5. Réponses: 4
    Dernier message: 01/08/2006, 12h31

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