Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    un iterator può essere ciclato all'interno del ciclo di un altro iterator?

    Ciao,
    La domanda in oggetto parte da un problema che vi spiego di seguito.

    Ho un primo iterator che mi stampa i risultati di una query; immaginiamo che sia l'alfabetico.

    Mentre stampo a video le varie lettere, passo ad un BEAN la lettera in questione (ad esempio A), interrogo il db e con un secondo iterator stampo tutti i nomi che iniziano con la A.

    Però ottengo questo risultato.

    A
    andrea, amilcare
    B
    andrea, amilcare, barbara, beatrice
    c
    andrea, amilcare, barbara, beatrice, carlo chiara

    Forse quando c'è un annidamento di iterator devo usare qualche metodo particolare?
    Grazie

  2. #2
    No, le operazioni fatte sono lecite (almeno da come le hai descritte). Prova a copiare un po di codice molto probabilmente sbagli l'implementazione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Non fate caso ai nomi di metodi e variabili, per farvi capire la logica ho portato l'esempio dell'alfabeto e dei nomi.
    codice:
    
    
    //dentro un bean faccio la query e riempio un'array che poi passo alla pagina con getListaRecord()
    
    //qui creo il primo iterator e la prima list che mi stampa l'alfabeto
    Iterator itr3;
    List data2 = Login.getListaRecord(); //
    
    //qui ciclo  il primo iterator che mi stampa a video l'alfabeto
    
    for (itr3=data2.iterator(); itr3.hasNext(); )
         {   
    // qui passo al bean il valore che deve essere utilizzato per fare la seconda query, quindi 
    ad esempio gli passo la lettera A per prendere tutti i nomi con la A (facendo il cast che vi 
    risparmio). I dati vengono passati correttamente, perchè quando stampo a video la seconda
     query vedo che è corretta.
    %><jsp:setProperty name="Login" property="sezioneidselezionata" value="<%=itr3.next()%>"/><%
    
    
    
    ///dentro il bean faccio la seconda query e riempio un'array che poi passo alla pagina
     con getListaMuscoli()
    
          //qui creo il secondo iterator e la seconda list che dovrebbe stamparmi i nomi 
    di ogni singola lettera dell'alfabeto
          Iterator itrMuscoli;
          List dataMuscoli = Login.getListaMuscoli();     
    
         // qui ciclo  il secondo iterator che mi stampa a video i nomi in maniera sbagliata
          for (itrMuscoli=dataMuscoli.iterator();itrMuscoli.hasNext()
    			{
                            %><%=itrMuscoli.next()%><%
                            }
          }

  4. #4
    Semplice non vai a capo ?!?
    Modificalo cosi
    codice:
          Iterator itrMuscoli;
          List dataMuscoli = Login.getListaMuscoli();     
    
         // qui ciclo  il secondo iterator che mi stampa a video i nomi in maniera sbagliata
          for (itrMuscoli=dataMuscoli.iterator();itrMuscoli.hasNext()
    			{
                            %>
    <%=itrMuscoli.next()%>
    
    
    <%
                            }
          }

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    In che senso non vado a capo? Il problema non è il br; il problema è che durante il secondo giro del ciclo, stampa i valori presenti in quel momento nell'iterator insieme ai valori presenti nell'iterator durante il primo giro del ciclo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.