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 :

Comment éditer un enregistrement via un Servlet ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut Comment éditer un enregistrement via un Servlet ?
    Bonjour,

    J'essaye de modifier un élément de mon formulaire, mais je n'y arrive vraiment pas. Je ne récupère pas l'enregistrement modifié dans mon formulaire d'aperçu et encore moins dans ma database.


    Donc ici, ci-dessous j'ai un enregistrement

    Nom : 1.png
Affichages : 155
Taille : 2,2 Ko

    Je souhaite modifier cet enregistrement par ceci

    Nom : 2.png
Affichages : 127
Taille : 2,1 Ko

    Lorsque je clique sur Update j'obtiens une page vide???

    Nom : 1.png
Affichages : 128
Taille : 2,4 Ko


    Voici comment fonctionne mon servlet

    Code java : 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
    public class UserHandler extends HttpServlet {    
        private static String INSERT = "/user.jsp";
        private static String Edit = "/edit.jsp";
        private static String UserRecord = "/listUser.jsp";
        private UserDao dao;
     
        public UserHandler() {
            super();
            dao = new UserDao();
        }
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        	String forward=""; 
        	String action = request.getParameter("action"); 
        	if (action.equalsIgnoreCase("delete"))
        	{ 
        		int userId = Integer.parseInt(request.getParameter("userId")); 
        		dao.removeUser(userId); 
        		forward = UserRecord; 
        		request.setAttribute("users", dao.getAllUsers());
        	} 
            else if (action.equalsIgnoreCase("editform")){        	
            	forward = Edit; 
            }
        	else if (action.equalsIgnoreCase("edit")){ 
        		int userId = Integer.parseInt(request.getParameter("userId")); 
        		UserBean user = dao.getUserById(userId); 
        		request.setAttribute("user", user); 
        	} else if (action.equalsIgnoreCase("listUser")){ 
        		forward = UserRecord; request.setAttribute("users", dao.getAllUsers());
        	} else { 
        		forward = INSERT; 
     
        	} RequestDispatcher view = request.getRequestDispatcher(forward); 
     
        	view.forward(request, response);
        }
     
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        	String redirect="";
     
            String action = request.getParameter("action");
     
     
        	if(action.equalsIgnoreCase("insert"))
            {
     
     
            	UserBean user = new UserBean();
     
                user.setfName(request.getParameter("firstName"));
                user.setlName(request.getParameter("lastName"));
                String userid = request.getParameter("userid");
                if(userid == null || userid.isEmpty())
                {
                	dao.addUser(user);
                }
     
                else { 
     
     
                	user.setUserid(Integer.parseInt(userid)); 
                	dao.editUser(user);
                } 
     
                RequestDispatcher rd = request.getRequestDispatcher(UserRecord); 
                request.setAttribute("users", dao.getAllUsers()); 
                rd.forward(request, response);
     
            }
     
     
     
     
        }
     
    }



    Et enfin, voici ma page edit.jsp

    Code jsp : 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
    <body>
    <%
            UserBean user = new UserBean();
    %>
    <%
            UserDao dao = new UserDao();
    %>
    <form method="POST" action='UserHandler' name="frmEditUser"><input
    	type="hidden" name="action" value="edit" /> <%
            String uid = request.getParameter("userId");
            if (!((uid) == null)) {
                    int id = Integer.parseInt(uid);
                    user = dao.getUserById(id);
     %>
    <table>
     
    	<tr>
    		<td>First Name</td>
    		<td><input type="text" name="firstName" value="<%=user.getfName()%>"/></td>
    	</tr>
    	<tr>
    		<td>Last Name</td>
    		<td><input type="text" name="lastName" value="<%=user.getlName()%>"/></td>
    	</tr>
    	<tr>
    		<td></td>
    		<td><input type="submit" value="Update" /></td>
    	</tr>
    </table>
    <%
            } else
                    out.println("ID Not Found");
    %>
    </form>
    </body>


    Je vous remercie pour votre aide

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Montre le code de la page d'appel et le web.xml.

  3. #3
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Bonsoir,

    Tout d'abord merci pour ta réponse Obutterlin, voici une idée de mon code, je ne vois vraiment pas où le problème pourrait se situer?
    Je n'ai pas de message d'erreur.

    UserDao

    Code java : 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 UserDao {
     
        private Connection conn;
     
        public UserDao() {
        	conn = ConnectionProvider.getConnection();
        }
     
     
        public void editUser(UserBean userBean) {    	
        	try {
        		String sql = "UPDATE users SET firstname=?, lastname=?" +
                " WHERE userid=?";
                PreparedStatement ps = conn
                        .prepareStatement(sql);
                ps.setString(1, userBean.getfName());
                ps.setString(2, userBean.getlName());            
                ps.setInt(3, userBean.getUserid());
                ps.executeUpdate();            
     
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
     
        public List getAllUsers() {
            List users = new ArrayList();
            try {
            	String sql = "SELECT * FROM users";
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    UserBean userBean = new UserBean();
                    userBean.setUserid(rs.getInt("userid"));
                    userBean.setfName(rs.getString("firstname"));
                    userBean.setlName(rs.getString("lastname"));                             
                    users.add(userBean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
     
            return users;
        }
     
        public UserBean getUserById(int userId) {
        	UserBean userBean = new UserBean();
            try {
            	String sql = "SELECT * FROM users WHERE userid=?";
                PreparedStatement ps = conn.
                        prepareStatement(sql);
                ps.setInt(1, userId);
                ResultSet rs = ps.executeQuery();
     
                if (rs.next()) {
                	userBean.setUserid(rs.getInt("userid"));
                	userBean.setfName(rs.getString("firstname"));
                	userBean.setlName(rs.getString("lastname"));                           
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return userBean;
        }
    }


    Mon servlet

    Code java : 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
    public class UserHandler extends HttpServlet {    
        private static String INSERT = "/user.jsp";
        private static String Edit = "/edit.jsp";
        private static String UserRecord = "/listUser.jsp";
        private UserDao dao;
     
        public UserHandler() {
            super();
            dao = new UserDao();
        }
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        	String forward=""; 
        	String action = request.getParameter("action"); 
        	if (action.equalsIgnoreCase("delete"))
        	{ 
        		int userId = Integer.parseInt(request.getParameter("userId")); 
        		dao.removeUser(userId); 
        		forward = UserRecord; 
        		request.setAttribute("users", dao.getAllUsers());
        	} 
            else if (action.equalsIgnoreCase("editform")){        	
            	forward = Edit; 
            }
        	else if (action.equalsIgnoreCase("edit")){ 
        		int userId = Integer.parseInt(request.getParameter("userId")); 
        		UserBean user = dao.getUserById(userId); 
        		request.setAttribute("user", user); 
        	} else if (action.equalsIgnoreCase("listUser")){ 
        		forward = UserRecord; request.setAttribute("users", dao.getAllUsers());
        	} else { 
        		forward = INSERT; 
     
        	} RequestDispatcher view = request.getRequestDispatcher(forward); 
     
        	view.forward(request, response);
        }
     
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        	String redirect="";
     
            String action = request.getParameter("action");
     
     
        	if(action.equalsIgnoreCase("insert"))
            {
     
     
            	UserBean user = new UserBean();
     
                user.setfName(request.getParameter("firstName"));
                user.setlName(request.getParameter("lastName"));
                String userid = request.getParameter("userid");
                if(userid == null || userid.isEmpty())
                {
                	dao.addUser(user);
                }
     
                else { 
     
                	String uid = request.getParameter("userId");
                 	if (!((uid) == null)) {
                 		int id = Integer.parseInt(uid);
                 		user = dao.getUserById(id);
                 	} else
                		//out.println("ID Not Found");
     
                	user.setUserid(Integer.parseInt(userid)); 
                	dao.editUser(user);
                } 
     
                RequestDispatcher rd = request.getRequestDispatcher(UserRecord); 
                request.setAttribute("users", dao.getAllUsers()); 
                rd.forward(request, response);
     
            }
     
        }
     
    }

    Web.xml

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://java.sun.com/xml/ns/javaee"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	id="WebApp_ID" version="3.0">
    	<display-name>JSPCrud</display-name>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.htm</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>default.html</welcome-file>
    		<welcome-file>default.htm</welcome-file>
    		<welcome-file>default.jsp</welcome-file>
    	</welcome-file-list>
     
    	<servlet>
    		<description></description>
    		<servlet-name>UserHandler</servlet-name>
    		<servlet-class>net.java.handler.UserHandler</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>UserHandler</servlet-name>
    		<url-pattern>/UserHandler</url-pattern>
    	</servlet-mapping>
    </web-app>

    listUser.jsp

    Code jsp : 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
    <body>
    <%
     
            UserDao dao = new UserDao();
            List<UserBean> userList = dao.getAllUsers();
     
    %>
    <table border="1">
    	<tr>
    		<th>Id</th>
    		<th>First Name</th>
    		<th>Last Name</th>
    	</tr>
    	<tr>
    		<%
     
                            for (UserBean user : userList) {
                    %>
    		<td><%=user.getUserid()%></td>
    		<td><%=user.getfName()%></td>
    		<td><%=user.getlName()%></td>
    		<td><a
    			href="UserHandler?action=editform&userId=<%=user.getUserid()%>">Update</a></td>
    		<td><a
    			href="UserHandler?action=delete&userId=<%=user.getUserid()%>">Delete</a></td>
     
    	</tr>
    	<%
                    }
            
            %>
    </table>
    <p><a href="UserHandler?action=insert">Add User</a></p>
    </body>
    </html>

    edit.jsp

    Code jsp : 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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Edit User</title>
    </head>
    <body>
    <%
            UserBean user = new UserBean();
    %>
    <%
            UserDao dao = new UserDao();
    %>
    <form method="POST" action='UserHandler' name="frmEditUser"><input
    	type="hidden" name="action" value="edit" /> <%
            
     %>
    <table>
     
    	<tr>
    		<td>First Name</td>
    		<td><input type="text" name="firstName" value="<%=user.getfName()%>"/></td>
    	</tr>
    	<tr>
    		<td>Last Name</td>
    		<td><input type="text" name="lastName" value="<%=user.getlName()%>"/></td>
    	</tr>
    	<tr>
    		<td></td>
    		<td><input type="submit" value="Update" /></td>
    	</tr>
    </table>
     
    </form>
    </body>
    </html>

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il devrait appeler la servlet de ce que je vois...
    Tu as mis un point d'arrêt dans la méthode doGet pour suivre ce qui est fait ?

  5. #5
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    J'ai finalement résolu mon problème en copiant un tutoriel ci-dessous.

    https://www.roseindia.net/jsp/crud-application.shtml

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/07/2011, 11h02
  2. Réponses: 7
    Dernier message: 20/01/2010, 15h43
  3. Réponses: 1
    Dernier message: 31/05/2008, 13h17
  4. Comment exporter et enregistrer un fichier via IdHttp
    Par DevBel dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/01/2008, 17h57
  5. Comment dupliquer un enregistrement via le code ?
    Par massol joel dans le forum Access
    Réponses: 2
    Dernier message: 11/11/2005, 19h01

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