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

Servlets/JSP Java Discussion :

Rafraichissement page jsp avec anciens paramètres.


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut Rafraichissement page jsp avec anciens paramètres.
    Bonjour,

    Je développe une application Servlet/Jsp.
    Je passe des paramètres d'une jsp a une autre via un formulaire.
    Je fait donc des request.getParameter("param1") ...

    Le problème c'est que quand je rafraîchie dans la page qui à reçu les paramètres, les request.getParameter() ne renvoient plus rien.

    Serai-t-il possible de renvoyer les paramètres lors du rafraîchissement de la page ? Sans passer par des variables de session ?

    Merci,

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    En le passant en URL?

    A+.

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Tu peux le faire avec des tag HTML input type="hidden" dans le formulaire de ta seconde page. (car j'imagine que c'est ça ta seconde page)

    Montre du code, car sinon on peut ne pas correctement t'aiguiller

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Par défaut
    J'y pensais aussi fxrobin, seulement, il n'y aura aucuns problèmes ? Je veux dire, mettre des champs input en hidden, cela s'utilise dans le cas ou l'on submit un formulaire... dans le cas d'un rafraichissement d'une page, il n'y a pas submit...

    Juste pour faire avancer le débat, n’hésite pas à me corriger :-)

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par Couci Voir le message
    J'y pensais aussi fxrobin, seulement, il n'y aura aucuns problèmes ? Je veux dire, mettre des champs input en hidden, cela s'utilise dans le cas ou l'on submit un formulaire... dans le cas d'un rafraichissement d'une page, il n'y a pas submit...

    Juste pour faire avancer le débat, n’hésite pas à me corriger :-)
    Oui, il faut submiter le formulaire pour envoyer ses input hidden.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    Bonjour, je n'ai peut être pas été assez clair. Ou je n'ai pas compris vos réponses.
    Voici le code d'une 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
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
     
     
    <%@page import="java.text.DateFormat"%>
    <%-- 
        Document   : ajoutEvenement
        Created on : 15 juin 2012, 15:28:06
        Author     : Antoine
    --%>
     
    <%@page import="JMessage.User"%>
    <%@page import="JMessage.GestionBDD"%>
    <%@page import="java.util.ArrayList"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
     
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <link rel="stylesheet" href="styles.css" type="text/css">
            <title></title>
     
            <script src="form.js" type="text/javascript">
            </script>
        </head>
        <body>
            <h1>Nouvel evenement</h1>
     
            <%
                if (request.getSession().getAttribute("user") == null) {
                    out.print("Vous n'êtes pas connecté. Cliquez <a href='home.jsp'>ici</a> pour vous authentifier");
                } else {
                    User currentUser = (User) request.getSession().getAttribute("user");
                    out.print(String.format("Bonjour %s !", currentUser.getLogin()) + "&nbsp==>&nbsp<a href='LogoutServlet'>Déconnexion</a>");
            %>
            &nbsp;<a href="content.jsp">Sommaire</a> &nbsp;<a href="listeEvenement.jsp">ListeEvenements</a><br>
            <%
                GestionBDD g = new GestionBDD();
     
     
                DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
                java.util.Date date = new java.util.Date();
                String dateNow = shortDateFormat.format(date);
     
                String idEvenement = "";
                if (request.getParameter("idEvenement") == null) {
                    idEvenement = (String) request.getAttribute("idEvenement");
                } else {
                    idEvenement = request.getParameter("idEvenement");
                }
                ArrayList<ArrayList<String>> arrayListDetailEv = new ArrayList();
                arrayListDetailEv = g.RechercheListeDetailEvenements(idEvenement);
     
                ArrayList<ArrayList<String>> arrayListUtilisateur = new ArrayList();
                arrayListUtilisateur = g.RechercheListeUtilisateur();
                ArrayList evenement = new ArrayList();
                evenement = g.RechercheEvenement(idEvenement);
     
     
            %>       
            <h3> Objet : <%= evenement.get(2)%></h3>
            <br><br>
            <table>
                <thead>
                    <tr>
                        <th>Auteur</th>
                        <th>Date</th>
                        <th>evenement</th>
                        <th>asigné à</th>
                    </tr>
                </thead>
                <tbody>
                    <%
                        for (ArrayList p : arrayListDetailEv) {
                    %>
                    <tr>
                        <td><%= g.GetNomUtilisateur((String) p.get(5))%></td>
                        <td><%= p.get(4)%></td>
                        <td> <%= p.get(3)%></td>
                        <td> <%= g.GetNomUtilisateur((String) p.get(2))%></td>
                    </tr>
                    <%
                        }
                    %>
     
     
                </tbody>
            </table>
            <br><br><br><br><br>
     
            <% if (request.getParameter("statut") != null) {
                    if (request.getParameter("statut").equals("1")) {
            %>
            <form action="AjoutEvenementServlet" method="post">
                <table>
                    <tbody>
                        <tr>
                            <td>date</td>
                            <td><input name ="date" value='<%= dateNow%>'/></td>
                        </tr>
                        <tr>
                            <td>auteur</td>
                            <td><input name ="login" value='<%= currentUser.getLogin()%>'/></td>
                    <input type ="hidden" name ="id_auteur" value='<%= currentUser.getId()%>'/>
                    </tr>
                    <tr>
                        <td>Détail</td>
                        <td><textarea name="message" cols="40" rows="10" ></textarea></td>
                    </tr>
                    <tr>
                        <td>Assigné à</td>
     
                        <td>
                            <select name="asign">
                                <option value=""></option>
                                <%
                                    for (ArrayList p : arrayListUtilisateur) {
                                %>
                                <option value="<%=p.get(0)%>"><%= p.get(1)%></option>
                                <%
                                    }
                                %> 
                            </select>
                            &nbsp;&nbsp;Fermer evenement <input type="checkbox" name="fermerEv">
                        </td>
                    </tr>
                    <tr>
                    <input type="hidden" name ="idEvenement" value='<%=request.getParameter("idEvenement")%>'/>
                    <td><input type="submit" value="Ok"/></td>
     
                    </tr>
                    </tbody>
     
                </table>       
            </form>
            <%
                }
            } else {
            %>
     
            <%                            }
                        
            %>
     
     
     
            <%
                }
     
     
     
            %>
        </body>
    </html>

    Donc cette page reçois divers paramètres en POST via un formulaire tout bête.

    Le problème c'est que si je fait F5 sur cette page j'ai une erreur du type :
    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
     
    Etat HTTP 500 -
     
    type Rapport d''exception
     
    message
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception
     
    org.apache.jasper.JasperException: An exception occurred processing JSP page /newDetailevenement.jsp at line 60
     
    57:             
    58:             
    59:         %>       
    60:         <h3> Objet : <%= evenement.get(2)%></h3>
    61:             <br><br>
    62:         <table>
    63:             <thead>
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:471)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	JMessage.EncodingFilter.doFilter(EncodingFilter.java:81)
    cause mère
     
    java.lang.IndexOutOfBoundsException: Index: 2, Size: 0
    	java.util.ArrayList.rangeCheck(ArrayList.java:604)
    	java.util.ArrayList.get(ArrayList.java:382)
    	org.apache.jsp.newDetailevenement_jsp._jspService(newDetailevenement_jsp.java:126)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	JMessage.EncodingFilter.doFilter(EncodingFilter.java:81)
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.22.
     
    Apache Tomcat/7.0.22
    Je comprend tout a fait pourquoi il me sort cette erreur, c'est par ce que la page ne reçoit pas le paramètre idEvenement.

    Je pourrais contourner le problème en créant une variable de session juste pour l'actualisation de la page mais sa m’embête et je suis persuadé qu'il existe des solutions plus propres.

  7. #7
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par Couci Voir le message
    J'y pensais aussi fxrobin, seulement, il n'y aura aucuns problèmes ? Je veux dire, mettre des champs input en hidden, cela s'utilise dans le cas ou l'on submit un formulaire... dans le cas d'un rafraichissement d'une page, il n'y a pas submit...

    Juste pour faire avancer le débat, n’hésite pas à me corriger :-)
    tout à fait, mais j'ai l'impression que l'énoncé du problème n'est pas complet (ce qui m'a fait pensé à un formulaire). C'est pourquoi je demande à voir des sources des pages pour comprendre un peu mieux ... et donc je propose des input hidden sans être totalement sûr qu'il faut faire ça ... puisqu'on a pas bcp d'élements ...

  8. #8
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    et quand tu fais F5, comme c'est en POST, ton navigateur doit te demander s'il "ressoummet" les données par POST ? Cliques tu bien sur oui ?

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

Discussions similaires

  1. exécuter une page jsp avec dreamweaver
    Par hammouch dans le forum JSF
    Réponses: 1
    Dernier message: 26/02/2007, 15h10
  2. connection d'une page jsp avec une base de donnée
    Par ami_in55 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 12/01/2007, 08h12
  3. Réponses: 13
    Dernier message: 01/10/2006, 15h52
  4. Inclure un site typo3 dans une page jsp avec div
    Par esteban dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/08/2006, 16h05
  5. Souci a afficher une page jsp avec tomcat V5 et eclipse 3
    Par arioule dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/07/2006, 13h44

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