Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    20

    collegamento servlet to jsp

    Salve ragazzi , avrei un quesito da porvi:

    Sto realizzando un servizio per la gestione dei pagamenti utenze condominiali e ho un problema. Quando faccio il controllo dei pagamenti delle utenze riferite ad un n di contatto e la richiesta che faccio al database è "dammi tutti i pagamenti effettuati dall'utente con un certo numero di contratto"l ,query realizzata su un servlet, ma quando faccio la lista dei parametri da inviare alla jsp di visualizzazione dei dati dei pagamenti registrati ho un solo record "stampato" sulla jsp. PERCHE??dove sbaglio:
    SERVLET:
    String Queryq3="SELECT id_bollettino, nome_esecutore, cognome_esecutore,data_versamento,annoriferimento, n_ricevuta FROM bollettino_versamento WHERE n_ricevuta='"+numero_contratto+"'";
    ResultSet rs3=stmn.executeQuery(Queryq3);

    while(rs3.next()){
    String id_bollettino = rs3.getString("id_bollettino");
    String nome_esecutore=rs3.getString("nome_esecutore");
    String cognome_esecutore=rs3.getString("cognome_esecutore ");
    String data_versamento=rs3.getString("data_versamento");
    String annoriferimento=rs3.getString("annoriferimento");
    String n_ricevuta=rs3.getString("n_ricevuta");

    request.setAttribute("id_boll",id_bollettino);
    request.setAttribute("nome_es",nome_esecutore);
    request.setAttribute("cogn_es",cognome_esecutore);
    request.setAttribute("data_v",data_versamento);
    request.setAttribute("annorif",annoriferimento);
    request.setAttribute("n_ric",n_ricevuta);


    System.out.println(id_bollettino+n_ricevuta+annori ferimento);
    }

    JSP:
    <table>
    versamento:
    <tr>id<td><%=request.getAttribute("id_boll")%></td>
    nome def<td><%=request.getAttribute("nome_es")%></td>
    cognome<td><%=request.getAttribute("cogn_es")%></td>
    data <td><%=request.getAttribute("data_v")%></td>
    anno<td><%=request.getAttribute("annorif")%></td>
    n ricevta<td><%=request.getAttribute("n_ric")%></td></tr>


    </table>

    GRAZIE

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

    Re: collegamento servlet to jsp

    Originariamente inviato da jairre
    ma quando faccio la lista dei parametri da inviare alla jsp di visualizzazione dei dati dei pagamenti registrati ho un solo record "stampato" sulla jsp. PERCHE??
    Perché (ri)scrivi sugli stessi attributi!

    Per fare una cosa valida e "pulita", dovresti "modellare" con una classe (es. BollettinoVersamento) il record di informazione (quindi l'insieme dei campi id_bollettino, nome_esecutore, ecc...).
    Quindi per ogni riga del resultset, crei un oggetto che contiene i dati del record e che poi inserisci in una "collezione" (una lista tipicamente, es. ArrayList).

    La lista, quindi 1 oggetto lo assegni ad 1 attributo. Nella pagina JSP ricavi la lista, iteri sulla lista e mandi in output i dati. E sarebbe preferibile se lo facessi usando custom tag come quelli di JSTL, non con delle expression <%= ..... %> perché se dei dati contengono caratteri "speciali" per l'HTML, con una expression non vengono convertiti nelle apposite "entità".
    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
    Jun 2010
    Messaggi
    20
    Ok grazie.....avevo pensato aduna cosa di questo tipo

    SERVLET

    ArrayList al= new ArrayList();
    while(rs3.next()){
    al.add(rs3.getString("id_bollettino")+rs3.getStrin g("nome_esecutore")+rs3.getString("cognome_esecuto re")+rs3.getString("data_versamento")
    +rs3.getString("annoriferimento")+rs3.getString("n _ricevuta"));
    request.setAttribute("al",al);
    }

    JSP

    <% ArrayList a =new ArrayList();
    a=(ArrayList) request.getAttribute("al");

    for(int i=0;i<a.size();i++){
    String recordlista=a.get(i).toString();



    %>
    <%= recordlista %>

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jairre
    ArrayList al= new ArrayList();
    while(rs3.next()){
    al.add(rs3.getString("id_bollettino")+rs3.getStrin g("nome_esecutore")+rs3.getString("cognome_esecuto re")+rs3.getString("data_versamento")
    +rs3.getString("annoriferimento")+rs3.getString("n _ricevuta"));
    request.setAttribute("al",al);
    }
    Assolutamente no. Avresti una stringona con tutto concatenato dentro di cui dubito fortemente che a) abbia senso e b) sia poi utile/pratico farci qualcosa.
    E inoltre il setAttribute dovresti farlo fuori dal ciclo, perché tanto l'oggetto ArrayList è comunque 1 solo.

    Ripeto: a) classe che "modella" il record. b) per ogni riga del resultset crei un oggetto e lo aggiungi al ArrayList. c) nella JSP ricavi la lista e iteri sugli elementi e per mandare in output i dati sarebbe altamente preferibile (a meno che ti sia stato sconsigliato/vietato da qualcuno per qualche motivo) farlo con i custom tag almeno di JSTL.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    20
    ok allora creo un jbean ed utilizzo i custom tag jstl e ti faccio sapere


    GRAZIE

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    20
    Scusami intendevi qualcosa del genere!!!


    public class bollettinoBeans {

    private int id_bollettino;
    private String nome_esecutore;
    private String cognome_esecutore;
    private int annoriferimento;
    private String data_versamento;
    private int n_ricevuta;

    /**
    * @return the id_bollettino
    */
    public int getId_bollettino() {
    return id_bollettino;
    }

    /**
    * @param id_bollettino the id_bollettino to set
    */
    public void setId_bollettino(int id_bollettino) {
    this.id_bollettino = id_bollettino;
    }

    /**
    * @return the nome_esecutore
    */
    public String getNome_esecutore() {
    return nome_esecutore;
    }

    /**
    * @param nome_esecutore the nome_esecutore to set
    */
    public void setNome_esecutore(String nome_esecutore) {
    this.nome_esecutore = nome_esecutore;
    }

    /**
    * @return the cognome_esecutore
    */
    public String getCognome_esecutore() {
    return cognome_esecutore;
    }

    /**
    * @param cognome_esecutore the cognome_esecutore to set
    */
    public void setCognome_esecutore(String cognome_esecutore) {
    this.cognome_esecutore = cognome_esecutore;
    }

    /**
    * @return the annoriferimento
    */
    public int getAnnoriferimento() {
    return annoriferimento;
    }

    /**
    * @param annoriferimento the annoriferimento to set
    */
    public void setAnnoriferimento(int annoriferimento) {
    this.annoriferimento = annoriferimento;
    }

    /**
    * @return the data_versamento
    */
    public String getData_versamento() {
    return data_versamento;
    }

    /**
    * @param data_versamento the data_versamento to set
    */
    public void setData_versamento(String data_versamento) {
    this.data_versamento = data_versamento;
    }

    /**
    * @return the n_ricevuta
    */
    public int getN_ricevuta() {
    return n_ricevuta;
    }

    /**
    * @param n_ricevuta the n_ricevuta to set
    */
    public void setN_ricevuta(int n_ricevuta) {
    this.n_ricevuta = n_ricevuta;
    }

    }

    SERVLET

    while(rs3.next()){
    bollettinoBeans b=new bollettinoBeans();
    b.setId_bollettino(rs3.getInt("id_bollettino"));
    b.setAnnoriferimento(rs3.getInt("annoriferimento") );

    ArrayList al= new ArrayList();
    al.add(b);
    .............
    GRAZIEEE

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.