Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    31

    passare un vector da servlet a jsp

    ciao a tutti,devo passare un vettore con 3 clienti da una servlet a una jsp, ma non ho trovato nulla in rete per risolvere.
    Nella classe cliente ci sono i metodi set e get per gli attributi id, nome, cognome, e il toString.
    La servlet Test3.java e cliente.jsp sono allegati; una volta eseguito su tomcat mi dà l'immagine che ho allegato. Ho settato solo il nome per brevità, ma dovrei settare tutti gli attributi. Così
    funziona, ma non dovrebbe esserci un modo per riempire il vettore ciclicamente, con valori diversi?Ho provato a fare così nella servlet, al posto di inserirli uno per uno:


    int id;
    Cliente cliente=new Cliente();
    Vector<Cliente> cli = new Vector<Cliente>();
    for(int i=0;i<cli.size();i++){
    id=(int)(Math.random()*100);
    cliente.setId(id);
    cliente.setNome("pippo");
    cliente.setCognome("rossi");
    cli.add(cliente);
    }
    ma la stampa si ferma a: I clienti sono
    cioè senza il contenuto del vettore che così facendo, comunque, penso abbia 3 elementi identici, io invece vorrei assegnare 3 nomi diversi.
    Grazie.
    Immagini allegate Immagini allegate
    File allegati File allegati

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cri43 Visualizza il messaggio
    codice:
            int id; 
            Cliente cliente=new Cliente();
            Vector<Cliente> cli = new Vector<Cliente>();
            for(int i=0;i<cli.size();i++){
            id=(int)(Math.random()*100);
        cliente.setId(id);
        cliente.setNome("pippo");
        cliente.setCognome("rossi");
        cli.add(cliente);
        }
    Innanzitutto qui c'è il "solito" errore concettuale che può capitare in questi casi: il cliente lo istanzi fuori (prima) del for e non dentro. Questo vuol dire che stai modificando sempre e solo un unico oggetto Cliente. Alla fine il tuo Vector avrà N riferimenti allo stesso oggetto (con gli "ultimi" dati, ovviamente)

    Questo è il classico errore concettuale .... ma non c'entra niente con il passaggio da Servlet a JSP. Se ti interessa anche questo aspetto, vedi l'esempio che avevo fatto in questo post.
    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
    Jul 2014
    Messaggi
    31
    ho ottenuto questo:


    I clienti sono


    1) Cliente [id=34, nome=mario, cognome=rossi]
    2) Cliente [id=47, nome=carlo, cognome=verdi]
    3) Cliente [id=10, nome=pippo, cognome=bianchi]

    scrivendo nella servlet:


    int id1=(int)(Math.random()*100);
    int id2=(int)(Math.random()*100);
    int id3=(int)(Math.random()*100);
    Vector<Cliente> cli = new Vector<Cliente>();
    cli.add(new Cliente(id1,"mario","rossi"));
    cli.add(new Cliente(id2,"carlo","verdi"));
    cli.add(new Cliente(id3,"pippo","bianchi"));

    e nel jsp:

    <% Vector cli=(Vector)request.getAttribute("vettore"); %>
    I clienti sono <br> <%for(int i=0;i<cli.size();i++) {%><br>
    <% out.println(i+1+") "+cli.get(i).toString());}%>
    Ultima modifica di cri43; 13-04-2015 a 18:13

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.