Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168

    [jsp] caricare combo da db

    Ciao ragazzi....
    Devo caricare una combo con dei valori esistenti in un db...
    Nella classe java ho il codice per caricare(ed è esatto), poi nella jsp ho il seguente codice:
    codice:
    <select id="Argomento" name="Argomento" >
         <option value="0" selected="selected">                </option>
         <option value="1">            </option>
         <option value="2">            </option></select></td>
          ...
          ...
          ...
          ...
    Ora vi domando come dire alla pagina jsp di prendere il risultato della query ke ho nella classe java!!!
    Grazie 1000.....

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    nella classe java, che immagino sia una servlet, prendi il resultSet, lo copi in una struttura dati tipo ArrayList, salvi la struttura in request e inoltri alla jsp. Nella jsp recuperi l'oggetto da request e stampi le option con un ciclo for.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    qst è il pezzo di codice java:
    codice:
    try
    {
    Connection conn= DriverManager.getConnection(DB_Url);
    Statement stmta = conn.createStatement();
    ResultSet resu = stmta.executeQuery("SELECT * FROM ARGOMENTI");
    	    					
    while(resu.next())
    {
    id = resu.getInt("Id_Argomento");
    argomento = resu.getString("Descrizione");
    }
    resu.close();
    stmta.close();
    conn.close();
    }
    catch(SQLException ex) 
    {
    System.err.println("SQLException: " + ex.getMessage()) ;
    }
    poi come salvo i due array in un Resulset?
    nella jsp come faccio a utilizzare il Resulset?Mi puoi postare un piccolo esempio?
    Grazie e scusami per la mia ignoranza, ma è poco ke tratto Java!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    allora il resultSet, tu lo hai gia'. Te lo scorri e salvi ogni record dentro un oggetto serializzabile ad hoc e metti questo oggetto in un ArrayList. Faccio un esempio.
    Ti scrivi una classe.Mettiamo che la tua queri tiri su dei record con 2 campi.
    codice:
    import java.io.Serializable;
    
    public class Argomento implements Serializable{
       private int Id;
       private String descrizione;
       
       public Argomento(int Id, String Descr) {
          this.Id=Id;
          this.Descr=Descr;
       }
    
        public int getId() {
          return Id;
       }
    
       public String getDescrizione() {
          return descrizione;
       }
    }
    Nella tua servlet poi
    codice:
    try {
    Connection conn= DriverManager.getConnection(DB_Url);
    Statement stmta = conn.createStatement();
    ResultSet resu = stmta.executeQuery("SELECT * FROM ARGOMENTI");
    ArrayList lista = new ArrayList();    					
    
    while(resu.next()) {
       Argomento argomento = new Argomento(resu.getInt("Id_Argomento"), resu.getString("Descrizione"));
       lista.add(argomento);
    }
    request.setAttribute("lista", lista); //request e' il parametro del metodo della servlet, non so se  l'hai chiamato cosi'
    
    resu.close();
    stmta.close();
    conn.close();
    }
    catch(SQLException ex) 
    {
    System.err.println("SQLException: " + ex.getMessage()) ;
    }
    Nella jsp recuperi l'ArrayList facendo
    codice:
    ArrayList lista = (lista)request.getAttribute("lista");
    Per sapere come iterare un ArrayList, dai un'occhiata alle api di java della sun.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Ho fatto tutti i passaggi ma ho un problema...
    Nella pagina jsp mi dice ke nn ho dichiarato la variabile "lista"....
    codice:
    <jsp:directive.page import="java.util.ArrayList"/>
    <jsp:directive.page import="provaprogetto.Inserimento;"/>
    <% ArrayList lista = (lista) request.getAttribute("lista");
    int length;
    length = lista.size();
    %>
    poi per caricare la combo ho fatto:
    codice:
     <select id="Argomento" name= "Argomento" >
        <%for(int i=0;i<length;i=i+1){ %>
        <option value="<%=i%>" >
    	<%= qui ci vanno tutte le descrizioni   %></option>
    	<%} %>
    	</select>
    come posso prendere i valori?

    Grazie simo7784

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    AIUTO!!!!!!!!!!!!!!!!!!
    Vi prego aiutatemi....

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Sorry, il cast va fatto al tipo di variabile, cioe' ArrayList anche tu pero' potevi accorgertene eh.
    codice:
    ArrayList lista = (ArrayList) request.getAttribute("lista");
    Per caricare
    codice:
    <select id="Argomento" name= "Argomento" >
       <%
       for(int i=0;i<lista.size();i=i++){ 
          Argomento arg = (Argomento) lista.get(i);
       %>
              <option value="<%= arg.getId() %>">
    	      <%= arg.getDescrizione() %>
              </option>
        <%} %>
    </select>
    Naturalmente devi far l'import anche della classe Argomento.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Buongiorno...
    Nella servlet mi da la linea gialla sotto:
    codice:
    lista.add(argomento);
    che serve per aggiungere l'id_argomento e la descrizione presi da una query...
    però funziona perchè non si da errore...

    poi se mando in play la pagina jsp nel ciclo for mi da errore 500 in:

    codice:
    lista.size()
    lista è stata dichiarata come ArrayList...

    come mai?
    Grazie in anticipo

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    CHe vuol dire errore 500? Puoi riportare la descrizione dell'errore?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    codice:
    type Exception report
    
    message 
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception 
    
    org.apache.jasper.JasperException: Exception in JSP: /Nuovo.jsp:43
    
    40:        
    41:    <select id="Argomento" name= "Argomento" >
    42:    <%
    43:    for(int i=0;i<lista.size();i=i++){ 
    44:       Argomento arg = (Argomento) lista.get(i);
    45:    %>
    46:           <option value="<%= arg.getId() %>">
    
    
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	provaprogetto.Login.doGet(Login.java:83)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
    
    root cause 
    
    java.lang.NullPointerException
    	org.apache.jsp.Nuovo_jsp._jspService(Nuovo_jsp.java:88)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	provaprogetto.Login.doGet(Login.java:83)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
    
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.

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.