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 :

redirection bizarre


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut redirection bizarre
    Bonjour,

    En fait je fais du struts et j'ai un formulaire dans une page celui ci permet d'ajouter des dossiers dans une base.
    Y a un champs ou l'utlisateur entre le dossier et un bouton submit qui active l'action d'ajout du dossier.
    Et ca marche ca ajoute le dossier..
    voici le contenu du form de la page 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
       <!--  Formulaire d'ajout d'un shift -->
      <html:form action="ShiftAjoutAction.do">
                      <tr> 
                        <td>   
                          <br>
                     <small style="font-weight: bold;"><span style="font-family: Arial;">
                    <img style="width: 9px; height: 9px;"alt="" src="Images\untitled.bmp"> 
                   <bean:message key="Shift.ajouter"/></span></small>
                    </td></tr>
     
     
                    <tr><td>
                    <span style="font-family: Arial;"><small><br>
                    &nbsp;&nbsp; <bean:message key="Shift.ajoutMessage"/><br>
                    &nbsp;</small></span>
                    <html:errors property="auteurShift"/>
                    <html:errors property="contenuShift"/>
     
                    <!--tabel de presentation auteur date etc..-->            
                         <table
                     style="text-align: left; "
                     border="0" cellpadding="2" cellspacing="2">
                                        <tbody>
                    <tr>
                        <td> 
     
                     <small style="font-weight: bold;"><span style="font-family: Arial;">
                    &nbsp; <bean:message key="Shift.auteur"/>  </span></small>
                    </td><td>
                     <html:text property="auteurShift"></html:text> </td>
                    </tr>
                      <tr><td>
                       <small style="font-weight: bold;"><span style="font-family: Arial;">
                    &nbsp;<bean:message key="Shift.contenu"/>    <br></span></small></td><td>
     
                    <html:textarea cols="40" rows="5" property="contenuShift"></html:textarea>
                    </td>
                      </tr>
                      <tr>
                      <td></td>
                      <td><html:submit value="Add" style="width: 50px; height: 20px;"></html:submit>
                      </td>
                      </tr>
                    </tbody>
                    </table>
    Le problème c'est que lorsque l'utilisateur ajoute un dossier et qu'ensuite il réactualise cette meme page de formulaire ca réajoute le dossier..

    voici la partie de mon struts config qui correspond
    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
     
     
    //lorsque j'ajoute un shift c'est cette action qui est activé
           <action path="/ShiftAjoutAction"
                type="fr.edition.eni.action.ShiftAjoutAction"
                name="shiftForm"
                scope="request"
                input="/LancerShiftSansAuthentification.do">
                <forward name="success" path="/LancerShiftSansAuthentification.do"></forward>
                <forward name="erreur" path="/LancerAffichageShift.do"></forward>
            </action>
            <!--Action pour supprimer un shift de la base -->
     
            <action path="/ShiftSuppressionAction"
                type="fr.edition.eni.action.ShiftSuppressionAction"
                name="shiftFormSansValidation"
                scope="request"
                input="/LancerShiftSansAuthentification.do">
                <forward name="success" path="/LancerShiftSansAuthentification.do"></forward>
                <forward name="erreur" path="/shiftForm.jsp"></forward>
            </action>
     
            <action path="/LancerShiftAction"
                type="fr.edition.eni.action.LancerShiftAction"
                name="acceuilForm"
                scope="request"
                 input="/shiftForm.jsp">
                <forward name="success" path="/afficheShift.jsp"></forward>
                 <forward name="nonAutoriséAdmi" path="/accesNonAutorise.jsp"></forward> 
            </action>    
     
            <action path="/LancerAffichageShift"
                type="fr.edition.eni.action.LancerAffichageShift"
                name="acceuilForm"
                scope="request"
                 input="/LancerShiftAction.do">
                <forward name="success" path="/shiftForm.jsp"></forward>
                 <forward name="nonAutoriséAdmi" path="/accesNonAutorise.jsp"></forward> 
            </action>  
     
            <!-- Action de lancement du formulaire des shifts sans effectuer d'authentification -->
            <action path="/LancerShiftSansAuthentification"
                type="fr.edition.eni.action.LancerShiftSansAuthentification"
                name="acceuilForm"
                scope="request"
                 input="/LancerShiftAction.do">
                <forward name="success" path="/shiftForm.jsp"></forward>
            </action>
    lorsque le user clique sur le bouton ajouter ca va ici:
    http://localhost:8084/WebApplication...AjoutAction.do

    c'est ca le probleme normalement ca devrait aller sur
    http://localhost:8084/WebApplication...ntification.do

    et du coup quant on réactualise ca va encore aller sur
    http://localhost:8084/WebApplication...AjoutAction.do

    et ajouter un shift donc ...

    Je comprend pas pourquoi ca renvoie pas sur cette page:
    http://localhost:8084/WebApplication...ntification.do

  2. #2
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut
    personne n'a d'idée ?
    Je cale

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    Peux tu montrer l'action ?

  4. #4
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut
    voila l'action


    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
    import fr.edit.eni.actionform.ShiftForm;
    import fr.edition.eni.javabeans.Astreinte;
    import fr.edition.eni.javabeans.Shift;
    import java.sql.Connection;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.sql.DataSource;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    public class ShiftAjoutAction extends Action{
     
     
     
        public ActionForward execute(ActionMapping mapping,ActionForm form, 
                                     HttpServletRequest request, 
    HttpServletResponse response)throws Exception{
     
        //AdministrationForm monAdministrationForm=(AdministrationForm) form;
        ShiftForm monShiftForm=(ShiftForm) form;
     
        //récupéreation date /////////////////////
          Date dateShift=new Date();
          Locale locale=Locale.getDefault();
          DateFormat dateFormat=new SimpleDateFormat("dd/MM/yy"+ " à " +"hh'h'mm");
     
          System.out.println("***********************");
          System.out.println(dateFormat.format(dateShift));
          System.out.println("***********************");
          ////////////////////////////
     
        DataSource ds=getDataSource(request, "enidb");
        Connection cnx=ds.getConnection();
        Shift monShift= new Shift();
     
        // Rajout dans la base des données.
        monShift.setDateShift(dateFormat.format(dateShift).toString());
        monShift.setAuteurShift(monShiftForm.getAuteurShift());
        monShift.setContenuShift(monShiftForm.getContenuShift());    
        return monShift.insertShift(mapping,cnx);
        }
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    monShift.insertShift(mapping,cnx); renvoie quoi exactement ?! un ActionForward je suppose mais rediregérer vers quel forward. OUh la je sais pas si je suis très clair là

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    Ah aussi la question que je me pose est est ce que après ton ajout, il rentre bien dans l'action LancerShiftSansAutorisation ?!

  7. #7
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut
    Citation Envoyé par Llaur76
    monShift.insertShift(mapping,cnx); renvoie quoi exactement ?! un ActionForward je suppose mais rediregérer vers quel forward. OUh la je sais pas si je suis très clair là
    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
     /**
         * Insertion d'un shift
         */
     
            public ActionForward insertShift(ActionMapping mapping,Connection 
    cnx) throws SQLException{
            PreparedStatement pstmt;
            try{
                Object num=new Object();
                pstmt=cnx.prepareStatement("use strutseni");
                Statement st = cnx.createStatement();
                ResultSet rs = st.executeQuery("select count(*) from 
    shift");             
                while(rs.next()){
                 num=rs.getString(1);
                    System.out.println("nombre de ligne de shift"+num);
               }
                 int t=0;
                 int index=0;
                  for(int i=0;t<1; i++){
                    if(num.equals(String.valueOf(i)))
                    {
                        t=12;
                        index=i+1;
                        System.out.println("i: "+i+" num: "+num+" OK");
                    }
                  }
     
     
                pstmt=cnx.prepareStatement("insert into shift(date, auteur, 
    contenu, num) values (?,?,?,"+index+")");
                pstmt.setString(1, dateShift);
                pstmt.setString(2, auteurShift);
                pstmt.setString(3, contenuShift);
                pstmt.executeUpdate();
                cnx.commit();
                 return mapping.findForward("success");
            }catch(Exception e){
            cnx.rollback();
             return mapping.findForward("erreur");
            }finally{
                cnx.close();
            }
        }
    il renvoie vers le success si tout se passe bien et c'est le cas puisqu'il ajoute et ne génére aucune exception ..
    Et shiftajoutaction comme tu le vois dans le fichier de conf en cas de success renvoie vers
    <forward name="success" path="/LancerShiftSansAuthentification.do">
    </forward>

    il rentre dans shiftsansautorisation parceque quand je change ce forward par une autre action dans le fichier de conf ca me renvoie sur la page de la nouvelle action .
    mais ce qui m'étonne c'est que malgré tout aprés ce forward la page reste avec ce nom
    http://localhost:8084/WebApplication...AjoutAction.do

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    Donc si j'ai bien compris, tu submit le formulaire, tu rediriges vers le LancerShiftSansAutorisation.do qui lui fait quoi exactement ?! Ensuite dans ce lancerShiftSansAutorisation.do en cas de succès tu le ramènes vers une page jsp ?! Est ce que tu pourrais pas essayer de faire à place de ça

    <forward name="success" path="/shiftForm.jsp"></forward>

    <forward name="success" path="/ShiftAjoutAction.do"/>

    Qui va donc réinitialiser les valeurs de ton formulaire

  9. #9
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut
    Non ca ne marche pas ca

    Mais je viens de trouver comment faire en fait il faut utiliser l'attribut redirect="true".

    et il faut faire donc ceci: <forward name="success" path="/LancerShiftSansAuthentification.do" redirect="true"></forward>

    et là ca marche

    Merci de ton aide

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

Discussions similaires

  1. Redirection très bizarre
    Par Clemencei dans le forum Langage
    Réponses: 11
    Dernier message: 23/07/2014, 14h18
  2. [C#] Redirection bizarre flux d'un process
    Par Aspic dans le forum C#
    Réponses: 0
    Dernier message: 07/02/2014, 11h00
  3. Un String Bizarre
    Par YanK dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 11h05
  4. Réponses: 4
    Dernier message: 28/09/2002, 00h00
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

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