Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2950 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA EE] Liste Déroulantes Liées Servlet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA EE] Liste Déroulantes Liées Servlet

n°2306107
killkala
Posté le 28-09-2017 à 09:55:00  profilanswer
 

Bonjour à tous !
Je sais que de nombreux sujet traite déjà de ma question, mais beaucoup sont en php et en java je ne trouve pas ma réponse.
 
J'ai déjà une partie de code construit. Et je pense que le problème vient de ma servlet car lorsque je rentre idSelect = (long) 1, il me ressort bien la zone 1 de ma liste. Mais du coup j'ai pas vraiment d'idée !
Je vous montre mon code : (j'ai enlever des grosses partie de mon code qui ne sont pas utile dans mon problème donc ne soyez pas étonné de certaines choses! Cela rend la lecture plus simple)
 
stationForm.jsp  
 

Code :
  1. <%@ page pageEncoding="UTF-8" %>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6.  <c:import url="/WEB-INF/includePart/header.jsp">
  7.       <c:param name="title" value="Nouvelle Station"></c:param>
  8.      </c:import>
  9. </head>
  10. <body>
  11.    <div class="menuPerso">
  12.       <c:import url="/WEB-INF/includePart/menu.jsp"></c:import>
  13.      </div>
  14.   <form class="form-signin" method="post" action="<c:url value="/station" />">
  15.        
  16.                 <h2 class="form-signin-heading">Nouvelle Station</h2>
  17.    <label for="chantier" class="sr-only">Nom du Chantier</label>
  18.                 <select class="form-control" id="chantier_id" name="chantier_id" onchange = "listZone();" required autofocus >
  19.                  <option id="chantier_id" value="">Chantier</option>
  20.                  <c:forEach items="${arrayChantier}" var="chantier">
  21.                   <option value="${chantier['chantier_id']}, ${chantier['chantier_name']}">${chantier['chantier_name']}</option>
  22.     </c:forEach>
  23.    </select>
  24.    <span class="error">${form.errors['chantier_name']}</span>
  25.    <br><br>
  26.    <label for="zone" class="sr-only">Nom de la Zone</label>
  27.              <select class="form-control" id="zone_id" name="zone_id" required autofocus>
  28.              <option  id="zone_id" value="" >Zone</option>
  29.               <c:forEach items="${arrayZone}" var="zone">
  30.                   <option value="${zone['zone_id']}">${zone['zone_name']}</option>
  31.     </c:forEach>
  32.    </select>
  33.    <span class="error">${form.errors['zone_name']}</span>
  34.    <br><br>
  35.                
  36.                 <p class="${empty form.errors ? 'succes' : 'error'}">${form.resultat}</p>
  37.         </form>
  38.        
  39. <script src="<c:url value="/JS/dynamicListForm.js" />"></script>
  40. </body>
  41. </html>


 
dynamicListForm.js

Code :
  1. function getXhr()
  2. {
  3.  var xhr = null;
  4.    
  5.  if(window.XMLHttpRequest) {
  6.   xhr = new XMLHttpRequest();
  7.  }
  8.      else if(window.ActiveXObject) {
  9.       try {
  10.        xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  11.          } catch (e) {
  12.          xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  13.          }
  14.      }
  15.      else {
  16.       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest" );
  17.          xhr = false;
  18.      }
  19.      return xhr;
  20. }
  21.  
  22. function listZone()
  23. {
  24. var xhr = getXhr();
  25. xhr.onreadystatechange = function() {
  26.  if(xhr.readyState == 4){
  27.   if (xhr.status == 200 || xhr.status == 0) {
  28.    select = xhr.responseText;
  29.          document.getElementById('zone_id').innerHTML = select;
  30.      }
  31.   else {
  32.    alert('Erreur :' +xhr.status + ' '+xhr.statusText);
  33.   }
  34.  }
  35. };
  36. xhr.open("GET","/Auscultation/station",true);
  37. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  38. chantierSelect = document.getElementById('chantier_id');
  39. idParent = chantierSelect.options[chantierSelect.selectedIndex].value;
  40. xhr.send(null);
  41. }


 
AddStationServlet.java

Code :
  1. package com.auscult.servlets;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.Map;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.Cookie;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import javax.servlet.http.HttpSession;
  11. import com.auscult.beans.Chantier;
  12. import com.auscult.beans.Zone;
  13. import com.auscult.forms.StationForm;
  14. import com.auscult.forms.ZoneForm;
  15. import com.auscult.dao.DaoChantier;
  16. import com.auscult.dao.DaoUser;
  17. import com.auscult.dao.DaoStation;
  18. import com.auscult.dao.DAOFactory;
  19. import com.auscult.dao.DaoZone;
  20. import com.google.gson.Gson;
  21. public class AddStationServlet extends HttpServlet {
  22. private static final long serialVersionUID = 1L;
  23. public static final String ATT_USER    = "user";
  24.     public static final String ATT_FORM    = "form";
  25.     public static final String CONF_DAO_FACTORY  = "daofactory";
  26.     public static final String ATT_SESSION_USER  = "userSession";
  27.     public static final String COOKIE_CONNECTION = "cookieConnection";
  28.    
  29.  
  30.     public static final String VUE         = "/WEB-INF/admin/create/stationForm.jsp";
  31.     public static final String HOME     = "/station";
  32.    
  33.     public String chemin;
  34.     public String station_dir;
  35.    
  36.     public String host;
  37. public String username;
  38. public String password;
  39. public String[] FTPtab  = new String [5];
  40.     private DaoUser   daoUser;
  41.     private DaoStation      daoStation;
  42.     private DaoZone   daoZone;
  43.     private DaoChantier  daoChantier;
  44.    
  45.     public void init() throws ServletException {
  46.    
  47.         this.daoStation = ( (DAOFactory) getServletContext().getAttribute( CONF_DAO_FACTORY ) ).getStationDao();
  48.         this.daoChantier = ( (DAOFactory) getServletContext().getAttribute( CONF_DAO_FACTORY ) ).getChantierDao();
  49.         this.daoZone = ( (DAOFactory) getServletContext().getAttribute( CONF_DAO_FACTORY ) ).getZoneDao();
  50.         this.daoUser = ( (DAOFactory) getServletContext().getAttribute( CONF_DAO_FACTORY ) ).getUserDao();
  51.     }
  52.     public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
  53.      HttpSession session = request.getSession();
  54.    
  55.      Long idSelect = null;
  56.      if (request.getParameter("select" )!= null){
  57.   idSelect = Long.parseLong(request.getParameter( "select" ));
  58.  }
  59.    
  60.      ArrayList<Chantier> arrayChantier = daoChantier.findAllChantier();
  61.      ArrayList<Zone> arrayZone = daoZone.findByChantier(idSelect);      
  62.  request.setAttribute("arrayChantier", arrayChantier);
  63.  request.setAttribute("arrayZone", arrayZone);
  64.    
  65.    
  66.         if ( session.getAttribute( ATT_SESSION_USER ) == null && getCookieValue(request, COOKIE_CONNECTION) == null) {
  67.             response.sendRedirect( request.getContextPath() + HOME );
  68.         } else {
  69.          if(session.getAttribute( ATT_SESSION_USER ) == null)
  70.          {
  71.           session.setAttribute(ATT_SESSION_USER, daoUser.find(Long.parseLong(getCookieValue(request, COOKIE_CONNECTION))));
  72.          }
  73.        
  74.             this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
  75.            
  76.         }
  77.       }
  78.    
  79.    
  80.     private static String getCookieValue( HttpServletRequest request, String nom ) {
  81.         Cookie[] cookies = request.getCookies();
  82.         if ( cookies != null ) {
  83.             for ( Cookie cookie : cookies ) {
  84.                 if ( cookie != null && nom.equals( cookie.getName() ) ) {
  85.                     return cookie.getValue();
  86.                 }
  87.             }
  88.         }
  89.         return null;
  90.     }
  91.  
  92. }


 
DaoImplZone.java (si ca peut etre utile!)

Code :
  1. package com.auscult.dao;
  2. import java.sql.*;
  3. import java.util.ArrayList;
  4. import com.auscult.beans.Station;
  5. import com.auscult.beans.Zone;
  6. import static com.auscult.dao.DaoTools.*;
  7. public class DaoImplZone implements DaoZone{
  8. private static final String SQL_SELECT_WHERE_CHANTIER_ID ="SELECT zone_id, zone_name, x1, y1, x2, y2, x3, y3, chantier_name, last_name "
  9.                + "FROM zone "
  10.                + "INNER JOIN chantier ON zone.FK_chantier_id = chantier.chantier_id "
  11.                + "INNER JOIN user ON chantier.FK_user_id = user.user_id WHERE chantier_id = ?";
  12. private DAOFactory          daoFactory;
  13.     DaoImplZone( DAOFactory daoFactory ) {
  14.         this.daoFactory = daoFactory;
  15.     }
  16.    
  17.    
  18.     @Override
  19.     public ArrayList<Zone> findByChantier ( Long chantier_id ) throws DAOException {
  20.      System.out.println("verifie DaoImplZone findChantier" );
  21.      Connection connexion = null;
  22.         PreparedStatement preparedStatement = null;
  23.         ResultSet resultSet = null;
  24.         ArrayList<Zone> listZone = new ArrayList<Zone>();
  25.         try {
  26.          
  27.             connexion = daoFactory.getConnection();
  28.             preparedStatement = initPreparedRequest( connexion, SQL_SELECT_WHERE_CHANTIER_ID, false, chantier_id );
  29.             resultSet = preparedStatement.executeQuery();
  30.             while ( resultSet.next() ) {
  31.              listZone.add(map(resultSet));
  32.             }
  33.         } catch ( SQLException e ) {
  34.          System.out.println("error sql exception = " + e.getMessage());
  35.             throw new DAOException( e );
  36.         } finally {
  37.             silentClose( resultSet, preparedStatement, connexion );
  38.         }
  39.        
  40.         System.out.println("size"+listZone.size());
  41.         return listZone;
  42.     }
  43.  
  44. }


 
Lorsque je select un élément de ma liste, il ne retourne rien dans ma deuxieme list (à vrai dire je me suis inspiré de ce forum https://www.developpez.net/forums/d [...] tes-liees/ surtout pour la servlet ^^)
 
Je vous remercie d'avance  
Ca fait vraiment un moment que je suis bloqué et je manque de connaissance pour trouvé, so .. HELP MEEE, PLEASE  !! ^^  
(désolé pour les fautes d'orthographes, on me le reproche souvent!)


Message édité par killkala le 02-10-2017 à 10:26:50
mood
Publicité
Posté le 28-09-2017 à 09:55:00  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA EE] Liste Déroulantes Liées Servlet

 

Sujets relatifs
Insérer caractères spéciaux dans zone de liste en cliquant sur boutonJAVA Ftp Quartz
Problème Main en java avec XML eclipse(Résolu) comment faire un Form cacher/visible selon liste de choix
gestion des collisions dans jeu en 2D javaMon premier dev java sous Android
Excel: changer nom des onglets avec une listecreer une liste deroulante sous flash cs4.
interface en java[Java] Erreur java.net.SocketException : socket closed (EOS)
Plus de sujets relatifs à : [JAVA EE] Liste Déroulantes Liées Servlet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR