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 :

Appel de "servlet controleur" depuis la jsp -MVC à contrôleur unique


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 24
    Points
    24
    Par défaut Appel de "servlet controleur" depuis la jsp -MVC à contrôleur unique
    Bonjour,

    J'ai un problème avec l'appel de ma servlet controleur.
    Au moment de l'appele la JSP envoit une action et un nom d'utilisateur qui doit être supprimer. Mais cela ne marche pas . J'ai testé la requete et les lignes de code dans le contrôleur. ils marchent bien. C'est à dire en mode console je supprime avec le même code. Donc le problème vient de la manière d'appel que j'utilise dans la jsp si je me trompe pas.
    Voici le code dans 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
     <%if(utilisateurs!=null){ %>
     <h2>Liste des utilisateurs</h2>
     <table border="1">
     <tr>
     <th>Login</th>
     <th>Mot de passe</th>
     <th>Code rôle</th>
    
     <c:forEach var="utilisateur" items="${utilisateurs}">
     <tr>
     <td><c:out value="${utilisateur.utilisateur}"/></td>
     <td><c:out value="${utilisateur.motDePasse}"/></td>
     <td><c:out value="${utilisateur.codeRole}"/></td>
     
     <td><a href="<c:url value="/main?action=doModifierUtilisateur&utilisateur=${utilisateur.utilisateur}"/>">Modifier</a></td>
     <td><a href="<c:url value="/main?action=doSupprimerUtilisateur&log=${utilisateur.utilisateur}"/>">Supprimer</a></td>
     </tr>
     </c:forEach>
     </table>
     <br>
    <c:out value="${sessionScope.log}"></c:out>
    <%}else{ %>
    La liste est vide
    <a href="<c:url value="/do/edit?id=-1"/>">Ajout</a>
    <%} %>
    alors moi je clique sur la ligne soulignée et donc la jsp va appeller le controleur
    qui de son côté va executer la méthode appropriée, supprimer l'utilisateur en question.
    Mais rien il execute la méthode revient sur la page et la ligne est toujours là!!!
    voici le code dans la Servlet:
    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
     
     
    ....
    //Détecte l'action supprimer
    if(action.equals("doSupprimerUtilisateur")){
    			this.doSupprimerUtilisateur(request, response);
    			return;
    		}
    //la methode pour supprimer un utilisateur
    public void doSupprimerUtilisateur(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    		ConnexionMySQL mySql = new ConnexionMySQL();
    		String log = (String)request.getAttribute("log");
     
    		try {
    			mySql.getInstruction().executeUpdate("DELETE FROM `t_utilisateur` WHERE `utilisateur`= 'tessf");
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    //me renvoit à la page jsp ci dessus
    		this.doGererUtilisateur(request, response);
    		mySql.arret();
    Moi je pense que j'ai un problème au niveau de l'appel de la servlet, je me trompe?
    Si oui y a t-il une meilleur moyen de faire l'appel tout en passant le nom de l'action et le nom d'utilisateur à supprimer?

    Toute proposition est bienvenue. Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Je commence à fatiguer, personne ne voit de déblocage..moi non plus je cherche et je cherche
    Le problème si je me trompe pas est que l'appel qui se fait vis "href" garde l'url dans la page demandée. Du coût on ne peut rien appeler puisque le parametre action dans l'URL reste. Finalement on boule sur la même page .

    Pour s'en débarasser je ne oit pas comment je peut faire à pare changer l'url si des méthodes existent.
    Au secours svp!!!

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Donc le problème est résolu !

    C'est une erreur de conception de ma part, j'avais précisé un url unique dans le contexte pour accéder à mon contrôleur.
    La solution donc est :

    Ajouter dans le contexteweb.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <servlet-mapping>
    		<servlet-name>ServletApplication</servlet-name>
    		<url-pattern>/do/*</url-pattern>
    </servlet-mapping>
    Dans les jsp on utilise des forms avec des action="votre action"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form  name="frmAuthentification" action="validationAuthentification" method="POST">
    <table>
     
    	<tr><!-- Première ligne -->...........
    Dans la servlet Contrôleur on récupère l'action getPathInfo()
    mais aussi ulr de la vue(jsp) à appeller avec getInitParameter("leNonDuParametre");//on utilise dans forward
    Est le contrôleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	if(methode.equals("post") && action.equals("/validationAuthentification")){
    		 // validation du formulaire de saisie
    		this.doValidationAuthentification(request, response);
    		return;
    		 }
    Et voilà !

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

Discussions similaires

  1. appel d'une servlet a partir d'une jsp
    Par developpeur_débutant dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 29/04/2008, 16h08
  2. [log4j] Doublons lors de l'appel d'un servlet depuis un jsp
    Par jokerparis dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 29/03/2007, 15h09
  3. [Servlet] [Session] Appel d'un servlet depuis une servlet
    Par mammistegon dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 20/06/2006, 12h52

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