Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213

    [JSP]link e db

    ho questa pag jsp che mi elenca i prodotti presenti in un db access e mi visualizza id (chiave) e nome dei prodotti.ogni id ha un link,clikkando sul link si dovrebbe aprire la pagina dettaglio.jsp con tutti i campi del determinato prodotto.mi potete dire dove sbaglio o cosa manca?vi posto entrambe le pagine

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page language="java" import="java.sql.*" %>
    <html>
    <head>
    </head>
    <body>
    <%
    String strSQL="SELECT id,nome FROM PRODOTTO";

    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);

    while(rsRisultato.next())
    {
    %>
    <A HREF="dettaglio.jsp">
    <% out.print(rsRisultato.getInt("id")); %>
    </A>
    <% out.print("");
    out.print(rsRisultato.getString("nome"));
    out.print("
    ");
    };
    rsRisultato.close();
    conn.close();
    %>
    </body>
    </html>
    la pagina dettaglio.jsp è la seguente:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page language="java" import="java.sql.*" %>
    <html>
    <head></head>
    <body>
    <%
    String strSQL="SELECT id,nome,descrizione,prezzo FROM PRODOTTO";

    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);

    out.print(rsRisultato.getInt("id"));
    out.print(rsRisultato.getString("nome"));
    out.print(rsRisultato.getString("descrizione"));
    out.print(rsRisultato.getString("prezzo"));

    rsRisultato.close();
    conn.close();
    %>
    </body>
    </html>
    grazie mille..spero possiate aiutarmi

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    ho provato anche in questo modo:
    listaprodotti:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page language="java" import="java.sql.*" %>
    <html>
    <head>

    </head>

    <body>
    <% String id_prodotto=request.getParameter("id_prodotto");
    String strSQL="SELECT id,nome FROM PRODOTTO";

    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);

    while(rsRisultato.next())
    {
    %>
    <A HREF=" dettaglio.jsp?id_prodotto=<%= "id" %> ">
    <% out.print(rsRisultato.getInt("id")); %>
    </A>
    <% out.print("");
    out.print(rsRisultato.getString("nome"));
    out.print("
    ");
    };
    rsRisultato.close();
    conn.close();
    %>
    </body>
    </html>

    dettaglio.jsp:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page language="java" import="java.sql.*" %>
    <html>
    <head> </head>
    <body>
    <% String id_prodotto=request.getParameter("id_prodotto");
    String strSQL="SELECT id,nome,descrizione,prezzo FROM PRODOTTO WHERE id= + id_prodotto";

    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);

    request.getParameter("id_prodotto");

    out.print(rsRisultato.getInt("id"));
    out.print(rsRisultato.getString("nome"));
    out.print(rsRisultato.getString("descrizione"));
    out.print(rsRisultato.getString("prezzo"));

    rsRisultato.close();
    conn.close();
    %>
    </body>
    </html>
    ma mi da exception in jsp: /dettaglio.jsp
    spero qualcuno possa aiutarmi

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    un errore è sicuramente x come passo i parametri nel link rimodificando ora mi da lo stesso errore (exception) sulla riga dell'outprint della pagina dettaglio.jsp...l'ultima modifica è la seguente:
    <%@ page language="java" import="java.sql.*" %>
    <html><head></head>
    <body>
    <%
    String strSQL="SELECT id,nome FROM PRODOTTO";
    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);
    while(rsRisultato.next())
    {
    %>
    <A HREF=" dettaglio.jsp?id_prodotto=<%= request.getParameter("id")%> ">
    <% out.print(rsRisultato.getInt("id")); %>
    </A>
    <% out.print("");
    out.print(rsRisultato.getString("nome"));
    out.print("
    ");
    };
    rsRisultato.close();
    conn.close();
    %>
    </body> </html>

    dettaglio.jsp:

    <%@ page language="java" import="java.sql.*" %>
    <html><head></head>
    <body>
    <% String id_prod= request.getParameter("id_prodotto");
    String strSQL="SELECT id,nome,descrizione FROM PRODOTTO where id = " + id_prod;

    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);

    rsRisultato.next();
    out.print(rsRisultato.getInt("id"));
    out.print(rsRisultato.getString("nome"));
    out.print(rsRisultato.getString("descrizione"));
    out.print(rsRisultato.getInt("prezzo"));
    rsRisultato.close();
    conn.close();
    %>
    </body></html>

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    in effetti il browser prova a caricare la pagina:
    http://localhost:8080/jsp-es/dettaglio.jsp?id_prod=null
    quindi non riesce a prendere il parametro... come posso risolvere??

  5. #5
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    scusa ma non c'e' un errore sui link che generi?
    se effettivamente hai cliccato su un link del tipo: allora qualcosa non va a monte: com'e' possibile che id_prod sia "null"? dovrebbe corrispondere a qualche numero o stringa, visto che e' relativo ad un oggetto che hai pescato dal database.

    cambiando queste due righe (nella prima jsp):
    <A HREF=" dettaglio.jsp?id_prodotto=<%= request.getParameter("id")%> ">
    <% out.print(rsRisultato.getInt("id")); %>
    in semplicemente
    codice:
    <A HREF=" dettaglio.jsp?id_prodotto=<%= rsRisultato.getInt("id")%> ">
    che succede? come sono i link che ti vengono preparati? c'e' ancora l'id_prodotto=null? ti da' ancora errore? se si' quale? cerca di essere specifico altrimenti e' difficile capire quale sia il reale problema

    p.s.: posso darti un consiglio? la prossima volta usa i tag appositi x contenere il codice, e soprattutto indentalo, rende molto piu' facile la lettura e aumenta la voglia di darti una mano

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    il problema del null l'ho risolto cambianto il ciclo while della prima pagina con:
    while(rsRisultato.next())
    {
    int prodId=(rsRisultato.getInt("id"));%>
    <A HREF=" dettaglio.jsp?id_prod=<%=prodId%> ">
    <%out.print(prodId); %>
    </A>
    <% out.print("");
    out.print(rsRisultato.getString("nome"));
    out.print("
    ");
    };
    facendo l'href come avevi detto te mi dava errore di sintassi,anche se non so perchè(già avevo provato)
    ora il pasaggio del parametro è giusto,mi manca solo da farlo prendere correttamente dall'altra pagina e farmi stampare gli altri campi...ti ringrazio molto x la disponibilità...se puoi darmi una mano...

  7. #7
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    si hai ragione, credo che manchi un ";"
    codice:
    <A HREF=" dettaglio.jsp?id_prodotto=<%= rsRisultato.getInt("id"); %> ">
    sul resto dopo guardo e posto qualcosa, ora non faccio in tempo..

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    ok,ci sono riuscito,posto cmq x tutti.la pagina dettaglio.jsp va modificata così:

    <% int id_prod= Integer.valueOf(request.getParameter("id_prod")).i ntValue();
    String strSQL="SELECT id,nome,descrizione FROM PRODOTTO where id="+id_prod;

    String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strNomeConnessione="jdbcdbc:database";
    Class.forName(strDriver);
    Connection conn=null;
    conn=DriverManager.getConnection(strNomeConnession e);
    Statement stmDb=conn.createStatement();
    ResultSet rsRisultato=null;
    rsRisultato=stmDb.executeQuery(strSQL);

    rsRisultato.next();

    out.print(rsRisultato.getInt("id"));
    out.print(rsRisultato.getString("nome"));
    out.print(rsRisultato.getString("descrizione"));
    grazie a tutti!!!

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.