Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86

    Struts, scorrere una collection

    Salve, ho un piccolo problema. devo scorrere una collection in una comdo con una select in html.

    il tag struts che contiene la collection è:

    <bean:write name="utente" property="messaggi"/>

    la select in html è:

    <select size="1" name="D1">
    <option>
    </option>
    </select>


    se metto:

    <select size="1" name="D1">
    <option>
    <bean:write name="utente" property="messaggi"/>
    </option>
    </select>


    la collection scorre, ma non come una semplice combo, mi viene messa tutta in un'unica riga.
    Shashia

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Struts, scorrere una collection

    Originariamente inviato da Sashias
    <select size="1" name="D1">
    <option>
    <bean:write name="utente" property="messaggi"/>
    </option>
    </select>


    la collection scorre, ma non come una semplice combo, mi viene messa tutta in un'unica riga.
    Ovviamente non va bene concettualmente. Generi 1 option con il risultato del toString() sulla collezione. Funziona tecnicamente ... ma non è questo che si deve fare.

    Devi proprio "iterare" sulla collezione. Con Struts usa <logic:iterate>, prendi elemento per elemento e per ognuno generi un <option> con del contenuto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    si, il problema e che io ho una collection di utenti, ogni utente ha una collection di messaggi e devo scorrere non soltanto la collection di utenti, ma anche quella dei messaggi

    quindi l'utente lo scorro con

    <logic:iterate id="utente" name="listaUtenti">

    ma poi x i messaggi che iterate uso?
    Shashia

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    messaggi è una collection di stringhe
    Shashia

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Sashias
    ma poi x i messaggi che iterate uso?
    Per ogni utente (quindi in questo primo iterate) puoi usare un altro iterate innestato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    hmmm io ho fatto:

    <logicresent name="listaUtenti">
    <logic:iterate id="utente" name="listaUtenti">

    <bean:write name="utente" property="nome"/>

    //qui devo stampare la collection di stringhe, il nome della collection è messaggiUtente,

    </logicresent>
    </logic:iterate>

    come faccio?
    Shashia

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Sashias
    come faccio?
    A parte il fatto che almeno per come l'hai postato, present e iterate si sovrappongono (errato).

    Comunque, a spanne (basta leggere il tlddoc di iterate):

    codice:
    <logic:iterate id="utente" name="listaUtenti">
        <logic:iterate id="messaggio" name="utente" property="messaggiUtente">
            ...
        </logic:iterate>
    </logic:iterate>
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    ho fatto:

    Codice PHP:

    <logic:iterate id="utente" name="listaUtenti">
    <
    bean:write name="utente" property="nomeUtente"/>
    <
    bean:write name="utente" property="cognomeUtente"/>

    <
    select size="1" name="D1">
    <
    logic:iterate id="messaggio" name="utente" property="messaggiUtente">
    <
    option>
     <
    bean:write name="utente" property="messaggiUtente"/>
    </
    option>       
    </
    logic:iterate>


    </
    logic:iterate

    mi succede questo, ci sono 5 utenti, ogni utente ha 4 messaggi, allora mi stampa:

    5 combo e ogni combo ha 5 optioni e ogni opzione 4 messaggi.
    Shashia

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Sashias
    Codice PHP:
    <logic:iterate id="messaggio" name="utente" property="messaggiUtente">
    <
    option>
     <
    bean:write name="utente" property="messaggiUtente"/>
    </
    option>       
    </
    logic:iterate
    Ma ragiona ..... se il iterate interno itera sui messaggi .... allora il bean con id 'messaggio' è già la stringa con il messaggio!!!!

    Quindi ti basta usare il write con name messaggio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    avevo già provato. l'errore è:

    No getter method for property: "messaggiUtente" of bean: "utente"
    Shashia

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.