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 :

probleme pour charger dynamiquement un tableau


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 55
    Par défaut probleme pour charger dynamiquement un tableau
    bonjour à tous,

    je patauge un peu dans la notion d'affichage dynamique dans une jsp (concernant une application web).

    Dans ma page jsp j'ai une liste déroulante de dates (listAllDates), fournie par une Servlet, et en fonction de la date sur laquelle l'utilisateur clique, je dois faire afficher un tableau de données dans cette même page jsp, sans bouton submit et sans rafraichir la page. Ces données proviennent elles aussi de ma Servlet, et correspondent aux elements d'une autre arraylist (listRunHome).

    J'ai donc pour cela un javascript que j'ai nommé scriptLoadTable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /**
     * javascript to fill the table 
     */
    function LoadTable () {
     
    var listRunHome  = document.getElementByName("selectedDate").value;
    var loc;
    loc = 'listRunHome='+listRunHome;
    window.location = './home.jsp?'+loc;
    	}
    Je ne suis pas sûre qu'il soit bon...

    le code de ma 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
    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
     
    public class SHome extends HttpServlet {
     
    	// class variables :
    	private static final long serialVersionUID = 1L;
    	static Connection cnx;
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost (request, response);}
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    HttpSession session = request.getSession(true);
    //timeout de 15 minutes pour cette session :
    session.setMaxInactiveInterval(15*60); // = 15 * 60 sec
    ... la connexion est ok...
     
    DaoRun runDao = new DaoRun(cnx);
     
    // liste des dates dans la liste deroulante de la jsp :
    ArrayList<String> listAllDates = new ArrayList<String>();
    listAllDates = runDao.findAllRunDates();
    System.out.println("SHome : taille de listAllDates : "+listAllDates.size()); //petite verif
    session.setAttribute("listAllDates", listAllDates);
     
    // recuperer la date choisie par l'utilisateur:
    String dateSelected  = request.getParameter("selectedDate");
    System.out.println("SHome : dateSelected : "+dateSelected);
     
    // puis afficher alors le tableau de resultat = info sur les runs ayant eu lieu a cette date :
    if ( request.getParameter("selectedDate") != null )
    	{
    	System.out.println("SHome dateSelected n'est pas null");
    	ArrayList<BRun> listRunHome = new ArrayList<BRun>();
    	listRunHome = runDao.getInfo(request.getParameter("dateSelected"));
    	System.out.println("SHome : listRunHome : "+listRunHome);
    	session.setAttribute("listRunHome", listRunHome); 
    	}
     
    else  {
    	System.out.println("SHome dateSelected est null");
    }
     
    //enfin j'envoie vers la jsp:
    RequestDispatcher disp = request.getRequestDispatcher("/home.jsp");
    disp.forward(request, response);
     
    }
    là où ça bloque, c'est notamment comment appeler mon javascript dans la 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
    <!-- pour afficher les elements de arrayList listRunDate :-->
    <table style="border: 1px, solid, separate; font-size: 8pt;">
    	<tr>
    	<td id="idTableDetailHeaderHome">DATE</td>
    	<td><FORM name="selectedDate" method="post" action="SHome">
     
    <!-- pas bon :-->
    <script src="scriptLoadTable.js" type="text/javascript"></script>
     
    <SELECT id="listAllDates" name="selectedDate" size="1" onChange="LoadTable()">
     
    <!-- NB : le name est ce qui sera recupere cote servlet avec request getParameter -->
    <c:if test="${not empty sessionScope['listAllDates'] }">
     
    <option value="" selected="selected" >Select</option>
    <c:forEach var="date" items="${sessionScope['listAllDates']}">
    <option value="${date}" ><c:out value="${date}"/></option><br />
    </c:forEach>
    </c:if >
    </SELECT>
    </FORM>
     
    </td>
    </tr>
    </table>
     
    <!-- et pour remplir le tableau: -->
    <c:if test="${not empty sessionScope.dateSelected}"-->	
    <table>
    <c:forEach var="run" items="${sessionScope.['listRunHome']}">
    	<tr>
    		<td><c:out value="${run.clientName}"/></td>
    		<td><c:out value="${run.matricule}"/></td>
    		<td><c:out value="${run.status}"/></td>
    	</tr>
    </c:forEach>
    </table>
    </c:if>
    Je bloque dessus depuis vendredi, et ça devient cafouilleux dans ma cervelle...
    Un coup de main serait bienvenue !

    Merci et bonne journée

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 55
    Par défaut
    Alors, après quelques recherches supplémentaires, il s'avère qu'en fait je n'avait rien compris au javascript ! lol

    Il semblerait que pour que je puisse recuperer des données auprès de ma servlet, sans recharger la page jsp, je sois obligée d'utiliser ajax. De plus avec l'objet XMLHttpRequest cela ne me permettrait pas de récupérer une ArrayList, mais seulement une Chaine.
    Cela semble laborieux sans cours sur le sujet, et par faute de temps je vais donc revenir à une méthode plus classique en utilisant un bouton submit.

    si quelqu'un a quand même des petits conseils à me donner je suis preneuse

    Bonne journée !

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/08/2007, 11h41
  2. Strucutre pour création dynamique de tableau?
    Par Jim_Nastiq dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/06/2007, 10h59
  3. Probleme pour charger un icone
    Par DrTank dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/05/2007, 12h02
  4. probleme de script pour trier dynamiquement un tableau
    Par K_!!! dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/02/2006, 16h46
  5. probleme de tri dynamique de tableau
    Par K_!!! dans le forum ASP
    Réponses: 21
    Dernier message: 15/02/2006, 16h44

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