|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
[JSP] Problema di conversione dei tipi usando DBTAGS :(
Descrizione della situazione:
![]() Quella appena postata è la parte del DB interessata. Praticamente devo cancellare 1 utente dalla conferenza, ma prima devo rimuoverlo dalle sue "partecipazioni e scelte". ![]() Tutto facile in PHP, ma in JSP + DBTAGS sto impazzendo. Al momento di fare l'aggiornamento dei posti disponibili, cioè posti++, dato che cancello 1 utente, compare il bellissimo messaggio di Tomcat che dice non si può passare da oggetto ad intero ... ![]() Ma porc!! ![]() Il codice è il seguente. Codice HTML:
<%-- query, annidamento 0. Seleziono gli eventi della conferenza specifica --%> <sql:statement id="statement1" conn="conn1"> <sql:query> SELECT * FROM evento WHERE argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>' </sql:query> <sql:resultSet id="rs1"> <sql:getColumn position="2" to="nome" scope="page" /> <sql:getColumn position="5" to="data" scope="page" /> <%-- altra query annidata, annidamento 1. Seleziono i collaterali agli eventi della conferenza specifica --%> <sql:statement id="statement2" conn="conn1"> <sql:query> SELECT * FROM possiede WHERE nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:resultSet id="rs2"> <sql:getColumn position="3" to="nome1" scope="page" /> <sql:getColumn position="4" to="data1" scope="page" /> <%-- altra query annidata, annidamento 2. Cancello la partecipazione ai collaterali. --%> <sql:statement id="statement3" conn="conn1"> <sql:query> DELETE FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome1")%>' AND data='<%=pageContext.getAttribute("data1")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 2 --%> <%-- altra query annidata, annidamento 2. Tento l'update dei posti dei collaterali. --%> <sql:statement id="statementA" conn="conn1"> <sql:query> SELECT * FROM collaterale WHERE nome='<%=pageContext.getAttribute("nome1")%>' AND data='<%=pageContext.getAttribute("data1")%>' </sql:query> <sql:resultSet id="rsA">Posti disponibili: <sql:getNumber position="6" /> <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 2 --%> <% out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti")); int posti_disponibili_ev = pageContext.getAttribute("posti"); %> <%-- altra query annidata, annidamento 2. Cancello la scelta degli eventi. --%> <sql:statement id="statement4" conn="conn1"> <sql:query> DELETE FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 2 --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 1 --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 0 --%> <%-- query, annidamento 0 --%> <sql:statement id="statement5" conn="conn1"> <sql:query> DELETE FROM iscritto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 0 --%> Codice HTML:
<%-- altra query annidata, annidamento 2. Tento l'update dei posti dei collaterali. --%> <sql:statement id="statementA" conn="conn1"> <sql:query> SELECT * FROM collaterale WHERE nome='<%=pageContext.getAttribute("nome1")%>' AND data='<%=pageContext.getAttribute("data1")%>' </sql:query> <sql:resultSet id="rsA">Posti disponibili: <sql:getNumber position="6" /> <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata, annidamento 2 --%> <% out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti")); int posti_disponibili_ev = pageContext.getAttribute("posti"); %> out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti")); stampa tranquillamente il numero di posti. Questo è il msg di Tomcat: ![]() Se qualcuno se la cava meglio di me, sono in ascolto. So che l'argomento è complesso, ma tentar a chiedere non nuoce.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 09-08-2005 alle 16:15. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
La documentazione delle DBTAGS, se qualcuno vuole darmi una mano, è qua:
http://jakarta.apache.org/taglibs/do...1.0/index.html
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Mamma mia ho fatto un escape da artista:
Codice:
<% out.print("Posti vecchi disponibili: " + pageContext.getAttribute("posti")); int posti_disponibili_ev = Integer.parseInt((String)pageContext.getAttribute("posti")); %> ![]() Ehm mi raccomando seguitemi fino ad UPDATE dei posti avvenuto, perchè ho proprio timore d'incontrare altre belle sorprese! ![]() ![]() ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 09-08-2005 alle 16:37. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Per convertirlo in numero con virgola (dovrebbe chiamarsi float vero?!) avete idea di come fare senza farmi smanettare troppo?!
TNX. PS Io vado d'intuito: Float.parseFloat
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Inoltre anche l'editor me lo colora di viola anzichè azzurro come gli altri tipi ... ![]() Sapete come rendere una variabile visibile in tutta la pgina col JSP + DBTAGS per caso?! Altrimenti mi tocca fare un sacco d'annidamenti nei DBTAGS. Sarà il primo e l'ultimo progetto in cui uso i DBTAGS ... fanno pena!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
![]() Se ciò che scrivo ti sembra oscuro, ti consiglio di leggere un manuale Java...es: "Java Mattone dopo mattone" che puoi scaricare da qui: http://www.java-net.it/download.html Quote:
![]() |
||
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Codice HTML:
... <%-- annidamento 2. Cerco di capire se l'utente è anche un autore --%> <sql:statement id="statementA1" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsA1"> <sql:getColumn position="6" to="cf" scope="page" /> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- annidamento 2. Cerco di capire se l'utente è anche un autore --%> <sql:statement id="statementB2" conn="conn1"> <sql:query> SELECT * FROM autore WHERE cf='<%= pageContext.getAttribute("cf") %>' </sql:query> <sql:resultSet id="rsB2"> <sql:wasNotEmpty> <% String autore="TRUE"; %> </sql:wasNotEmpty> </sql:resultSet> <sql:wasEmpty> <% String autore="FALSE"; %> </sql:wasEmpty> <sql:execute ignoreErrors="true" /> </sql:statement> ... Tomcat mi dice che non trova da nessuna parte la variabile autore. Solo tra quei 2 TAG <sql:wasNotEmpty> & <sql:wasEmpty> esiste!!! ![]() Se + avanti nella pagina JSP, fuori dai TAG precedenti faccio Codice HTML:
...
<% out.print("Autore: " + autore + "<br />"); %>
...
![]() ![]() ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 28-08-2005 alle 09:20. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Morale della favola:
Se non torvo una maniera x rendere "static" la variabile autore, mi tocchera spostare i rami di codice con altri statement all'interno di quei 2 TAG ed il che significa: IL DELIIIRIIIIOOOOO! Aiuto! ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Evidentemente <% String autore="TRUE"; %> e <% String autore="FALSE"; %> si trovano all'interno di particolari blocchi di codice...anche perché, se non fossero "blocchi locali", avresti due volte la dichiarazione della stessa variabile!
![]() Se ti va di curiosare, esiste una cartella in Tomcat in cui puoi vedere come sono stati tradotti i TAG in fase di compilazione...cerca la cartella "work" (allo stesso livello di WebApp) e sbircia nelle sottocartelle... ![]() Comunque se vuoi autore come variabile "globale", non dichiararla all'interno di quei tag...dichiarala prima! ![]() Fai all'inizio pagina: <% String autore %> e modifica quindi i punti in cui gli assegni un valore in: <% autore="TRUE"; %> e <% autore="FALSE"; %> (eliminando la dichiarazione del tipo) e vedrai che funziona anche dopo ![]() Approposito, visto che ci assegni i valori "TRUE" e "FALSE", potrebbe essere conveniente dichiararla direttamente boolean...o Boolean ![]() |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Ok adesso funziona, peccato che non posso provarlo bene, ma dovrebbe funzionare.
Ho qualche errore in questo codice che ho partorito pieno di annidamenti di query!!! ![]() Codice:
<%-- una delle pagine che mi permettono la cancellazione da una conferenza --%> <jsp:include page = "top.jsp" flush="true" /> <%@ page errorPage = "ErrorPage.jsp" %> <br /> <%@ taglib uri="http://jakarta.apache.org/taglibs/dbtags" prefix="sql" %> <%-- open a database connection --%> <sql:connection id="conn1"> <%-- required --%> <sql:url>jdbc:mysql://localhost/sysconf</sql:url> <%-- optional --%> <sql:driver>org.gjt.mm.mysql.Driver</sql:driver> <%-- optional --%> <sql:userId>root</sql:userId> <%-- optional --%> <sql:password>cane</sql:password> </sql:connection> <%-- Definisco ed inizializzo le variabili che mi servono --%> <% String autore="FALSE"; int posti_vecchi_ev=0; int posti_nuovi_ev=0; float spesa_tot_nuova=0; float spesa_tot_vecchia=0; float costo=0; %> <%-- Provo a capire se l'utente è anche un autore di qualche lavoro --%> <sql:statement id="statementA" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsA"> <sql:getColumn position="6" to="cf" scope="page" /> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <sql:statement id="statementB" conn="conn1"> <sql:query> SELECT * FROM autore WHERE cf='<%= pageContext.getAttribute("cf") %>' </sql:query> <sql:resultSet id="rsB"> <sql:wasNotEmpty> <% autore="TRUE"; %> </sql:wasNotEmpty> </sql:resultSet> <sql:wasEmpty> <% autore="FALSE"; %> </sql:wasEmpty> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- A questo punto dovrei averlo capito --%> <% out.print("Autore: " + autore + "<br />"); %> <br /> <div align="center"> <fieldset id="nominativo"> <legend>Cancella</legend> <%-- Annidamento 0. Seleziono gli eventi della conferenza specifica. --%> <sql:statement id="statementC" conn="conn1"> <sql:query> SELECT * FROM evento WHERE argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>' </sql:query> <sql:resultSet id="rsC"> <sql:getColumn position="2" to="nome" scope="page" /> <sql:getColumn position="5" to="data" scope="page" /> <%-- Annidamento 1. Seleziono i collaterali agli eventi della conferenza. --%> <sql:statement id="statementD" conn="conn1"> <sql:query> SELECT * FROM possiede WHERE nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:resultSet id="rsD"> <sql:getColumn position="3" to="nome1" scope="page" /> <sql:getColumn position="4" to="data1" scope="page" /> <%-- Annidamento 2. Select dei collaterali a cui partecipo. --%> <sql:statement id="statementE" conn="conn1"> <sql:query> SELECT * FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome1")%>' AND data='<%=pageContext.getAttribute("data1")%>' </sql:query> <sql:resultSet id="rsE"> <sql:getColumn position="2" to="nome_delete" scope="page" /> <sql:getColumn position="3" to="data_delete" scope="page" /> <%-- Annidamento 3. Preparo l'update dei posti dei collaterali. --%> <sql:statement id="statementF" conn="conn1"> <sql:query> SELECT * FROM collaterale WHERE nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:resultSet id="rsF"> <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/> <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query F, annidamento 3 --%> <% posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti")); out.print("Collaterale: posti vecchi disponibili: " + posti_vecchi_ev + "<br />"); posti_nuovi_ev = posti_vecchi_ev + 1; out.print("Collaterale: posti nuovi disponibili: " + posti_nuovi_ev + "<br />"); %> <%-- Annidamento 3. Tento l'update dei posti dei collaterali. --%> <sql:statement id="statementG" conn="conn1"> <sql:query> UPDATE collaterale SET posti_disponibili='<% out.print(posti_nuovi_ev); %>' WHERE nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query G, annidamento 3 --%> <%-- Annidamento 3. Cancello la partecipazione ai collaterali. --%> <sql:statement id="statementH" conn="conn1"> <sql:query> DELETE FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query H, annidamento 3 --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query E, annidamento 2 di select dei collaterali a cui partecipo --%> <%-- Annidamento 2. Preparo l'update della spesa dell'utente x i collaterali. --%> <sql:statement id="statementI" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsI"> <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <% if (autore.equals("FALSE")) { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - costo; out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } else { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100)); out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } %> <%-- Annidamento 2. Tento l'update della spesa dell'utente x i collaterali. --%> <sql:statement id="statementL" conn="conn1"> <sql:query> UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>' WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine annidamento 2. Update della spesa dell'utente x i collaterali. --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query D, annidamento 1 di selezione di collaterali agli eventi della conferenza --%> <%-- Annidamento 1. Select degli eventi che ho scelto. --%> <sql:statement id="statementM" conn="conn1"> <sql:query> SELECT * FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:resultSet id="rsM"> <sql:getColumn position="2" to="nome_delete" scope="page" /> <sql:getColumn position="3" to="data_delete" scope="page" /> <%-- Annidamento 2. Preparo l'update dei posti degli eventi. --%> <sql:statement id="statementN" conn="conn1"> <sql:query> SELECT * FROM evento WHERE nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:resultSet id="rsN"> <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/> <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query N, annidamento 2 --%> <% posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti")); out.print("Evento: posti vecchi disponibili: " + posti_vecchi_ev + "<br />"); posti_nuovi_ev = posti_vecchi_ev + 1; out.print("Evento: posti nuovi disponibili: " + posti_nuovi_ev + "<br />"); %> <%-- Annidamento 2. Tento l'update dei posti degli eventi. --%> <sql:statement id="statementO" conn="conn1"> <sql:query> UPDATE evento SET posti_disponibili='<% out.print(posti_nuovi_ev); %>' WHERE nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query O, annidamento 2 --%> <%-- Annidamento 2. Cancello la scelta degli eventi. --%> <sql:statement id="statementP" conn="conn1"> <sql:query> DELETE FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query P, annidamento 2 --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata M, annidamento 1 --%> <%-- Annidamento 1. Tento l'update della spesa dell'utente x gli eventi. --%> <sql:statement id="statementQ" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsQ"> <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <% if (autore.equals("FALSE")) { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - costo; out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } else { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100)); out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } %> <sql:statement id="statementR" conn="conn1"> <sql:query> UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>' WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query R, annidamento 1. Update della spesa dell'utente x gli eventi. --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query C, annidamento 0 di selezione degli eventi della conferenza specifica. --%> <%-- Annidamento 0 per cancellare l'iscrizione ad una conferenza --%> <sql:statement id="statementS" conn="conn1"> <sql:query> DELETE FROM iscritto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query S, annidamento 0 --%> <h3 align="center"><font color="green">Utente cancellato dalla conferenza.</font></h3> <%-- <meta http-equiv="Refresh" content="5; url=http://localhost:8080/www/j2ee-sysconf/menu.jsp" /> --%> </fieldset> </div> <sql:closeConnection conn="conn1"/> <br /> <jsp:include page="bottom.jsp" flush="true" /> Sarà per tutte le query con ignoreErrors="true"?! Stasera quando torno dalla corsa provo a sostituirli in automatico col editor in "false". Se nel frattempo qualcun'altro ha un'altra idea, son tutt'occhi! ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 29-08-2005 alle 16:56. |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
Per quanto riguarda l'errore, è possibile che sia mascherato da ignoreErrors="true"...se anche mettendolo a false non trovi nulla, prova a mettere un po' di out.println per capire a che punto si ferma ![]() |
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
![]() Deve esserci qualcosa di strano, cmq doccio, magno e controllo! ![]() [EDIT] Mi sa che gli annidamenti non posso toglierli perchè le DBTAGS con il tag "<sql:resultSet>" auto-ciclano sul SetRisultato e quindi per ottenre le combinazioni devo annidarle lì dentro! almeno così ho capito dalla documetazione on-line: http://jakarta.apache.org/taglibs/do...1.0/index.html Mi chiedo se con le JSTL tags la vita fosse stata diversa ... altrimenti la prox volta programmo in Java puro! ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 28-08-2005 alle 19:30. |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
|
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
C:\Programmi\Apache Software Foundation\Tomcat 5.5\logs vero?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
![]() CMQ Dragon sei stato veramente utile e paziente, domani ti faccio sepere se risolvo o meno. Grazie ancora!!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
C'è l'ho fatta Dragon!!!
alla fine ho partorito questo codice ... Codice:
<%-- una delle pagine che mi permettono la cancellazione da una conferenza --%> <jsp:include page = "top.jsp" flush="true" /> <%@ page errorPage = "ErrorPage.jsp" %> <br /> <%@ taglib uri="http://jakarta.apache.org/taglibs/dbtags" prefix="sql" %> <%-- open a database connection --%> <sql:connection id="conn1"> <%-- required --%> <sql:url>jdbc:mysql://localhost/sysconf</sql:url> <%-- optional --%> <sql:driver>org.gjt.mm.mysql.Driver</sql:driver> <%-- optional --%> <sql:userId>root</sql:userId> <%-- optional --%> <sql:password>cane</sql:password> </sql:connection> <%-- Definisco ed inizializzo le variabili che mi servono --%> <% String autore="FALSE"; int posti_vecchi_ev=0; int posti_nuovi_ev=0; float spesa_tot_nuova=0; float spesa_tot_vecchia=0; float costo=0; %> <%-- Provo a capire se l'utente è anche un autore di qualche lavoro --%> <sql:statement id="statementA" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsA"> <sql:getColumn position="6" to="cf" scope="page" /> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <sql:statement id="statementB" conn="conn1"> <sql:query> SELECT * FROM autore WHERE cf='<%= pageContext.getAttribute("cf") %>' </sql:query> <sql:resultSet id="rsB"> <sql:wasNotEmpty> <% autore="TRUE"; %> </sql:wasNotEmpty> </sql:resultSet> <sql:wasEmpty> <% autore="FALSE"; %> </sql:wasEmpty> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- A questo punto dovrei averlo capito --%> <% out.print("Autore: " + autore + "<br />"); %> <br /> <div align="center"> <fieldset id="nominativo"> <legend>Cancella</legend> <%-- Annidamento 0. Seleziono gli eventi della conferenza specifica. --%> <sql:statement id="statementC" conn="conn1"> <sql:query> SELECT * FROM evento WHERE argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>' </sql:query> <sql:resultSet id="rsC"> <sql:getColumn position="2" to="nome" scope="page" /> <sql:getColumn position="5" to="data" scope="page" /> <%-- Annidamento 1. Seleziono i collaterali agli eventi della conferenza. --%> <sql:statement id="statementD" conn="conn1"> <sql:query> SELECT * FROM possiede WHERE nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:resultSet id="rsD"> <sql:getColumn position="3" to="nome1" scope="page" /> <sql:getColumn position="4" to="data1" scope="page" /> <%-- Annidamento 2. Select dei collaterali a cui partecipo. --%> <sql:statement id="statementE" conn="conn1"> <sql:query> SELECT * FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome1")%>' AND data='<%=pageContext.getAttribute("data1")%>' </sql:query> <sql:resultSet id="rsE"> <sql:getColumn position="2" to="nome_delete" scope="page" /> <sql:getColumn position="3" to="data_delete" scope="page" /> <%-- Annidamento 3. Preparo l'update dei posti dei collaterali. --%> <sql:statement id="statementF" conn="conn1"> <sql:query> SELECT * FROM collaterale WHERE nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:resultSet id="rsF"> <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/> <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query F, annidamento 3 --%> <% posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti")); out.print("Collaterale: posti vecchi disponibili: " + posti_vecchi_ev + "<br />"); posti_nuovi_ev = posti_vecchi_ev + 1; out.print("Collaterale: posti nuovi disponibili: " + posti_nuovi_ev + "<br />"); %> <%-- Annidamento 3. Tento l'update dei posti dei collaterali. --%> <sql:statement id="statementG" conn="conn1"> <sql:query> UPDATE collaterale SET posti_disponibili='<% out.print(posti_nuovi_ev); %>' WHERE nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query G, annidamento 3 --%> <%-- Annidamento 3. Cancello la partecipazione ai collaterali. --%> <sql:statement id="statementH" conn="conn1"> <sql:query> DELETE FROM partecipa WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query H, annidamento 3 --%> <%-- Annidamento 3. Preparo l'update della spesa dell'utente x i collaterali. --%> <sql:statement id="statementI" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsI"> <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <% if (autore.equals("FALSE")) { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - costo; out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } else { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100)); out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } %> <%-- Annidamento 3. Tento l'update della spesa dell'utente x i collaterali. --%> <sql:statement id="statementL" conn="conn1"> <sql:query> UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>' WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine annidamento 3. Update della spesa dell'utente x i collaterali. --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query E, annidamento 2 di select dei collaterali a cui partecipo --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query D, annidamento 1 di selezione di collaterali agli eventi della conferenza --%> <%-- Annidamento 1. Select degli eventi che ho scelto. --%> <sql:statement id="statementM" conn="conn1"> <sql:query> SELECT * FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:resultSet id="rsM"> <sql:getColumn position="2" to="nome_delete" scope="page" /> <sql:getColumn position="3" to="data_delete" scope="page" /> <%-- Annidamento 2. Preparo l'update dei posti degli eventi. --%> <sql:statement id="statementN" conn="conn1"> <sql:query> SELECT * FROM evento WHERE nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:resultSet id="rsN"> <sql:getNumber position="6" to="posti" scope="page" format="NUMBER"/> <sql:getNumber position="7" to="costo" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query N, annidamento 2 --%> <% posti_vecchi_ev = Integer.parseInt((String)pageContext.getAttribute("posti")); out.print("Evento: posti vecchi disponibili: " + posti_vecchi_ev + "<br />"); posti_nuovi_ev = posti_vecchi_ev + 1; out.print("Evento: posti nuovi disponibili: " + posti_nuovi_ev + "<br />"); %> <%-- Annidamento 2. Tento l'update dei posti degli eventi. --%> <sql:statement id="statementO" conn="conn1"> <sql:query> UPDATE evento SET posti_disponibili='<% out.print(posti_nuovi_ev); %>' WHERE nome='<%=pageContext.getAttribute("nome")%>' AND data='<%=pageContext.getAttribute("data")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query O, annidamento 2 --%> <%-- Annidamento 2. Cancello la scelta degli eventi. --%> <sql:statement id="statementP" conn="conn1"> <sql:query> DELETE FROM scelto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND nome='<%=pageContext.getAttribute("nome_delete")%>' AND data='<%=pageContext.getAttribute("data_delete")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query P, annidamento 2 --%> <%-- Annidamento 2. Tento l'update della spesa dell'utente x gli eventi. --%> <sql:statement id="statementQ" conn="conn1"> <sql:query> SELECT * FROM utente WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:resultSet id="rsQ"> <sql:getNumber position="8" to="spesa" scope="page" format="NUMBER"/> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <% if (autore.equals("FALSE")) { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - costo; out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } else { costo = Float.parseFloat((String)pageContext.getAttribute("costo")); spesa_tot_vecchia = Float.parseFloat((String)pageContext.getAttribute("spesa")); spesa_tot_nuova = spesa_tot_vecchia - (costo - ((costo * 20) / 100)); out.print("Costo: " + costo + "<br />"); out.print("spesa_tot_vecchia: " + spesa_tot_vecchia + "<br />"); out.print("spesa_tot_nuova: " + spesa_tot_nuova + "<br />"); } %> <sql:statement id="statementR" conn="conn1"> <sql:query> UPDATE utente SET spesa_tot ='<% out.print(spesa_tot_nuova); %>' WHERE utente_id='<%= request.getParameter("utente_id") %>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query R, annidamento 21. Update della spesa dell'utente x gli eventi. --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query annidata M, annidamento 1 --%> </sql:resultSet> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query C, annidamento 0 di selezione degli eventi della conferenza specifica. --%> <%-- Annidamento 0 per cancellare l'iscrizione ad una conferenza --%> <sql:statement id="statementS" conn="conn1"> <sql:query> DELETE FROM iscritto WHERE utente_id='<%= request.getParameter("utente_id") %>' AND argomento='<%=request.getParameter("argomento")%>' AND scadenza='<%=request.getParameter("scadenza")%>' </sql:query> <sql:execute ignoreErrors="true" /> </sql:statement> <%-- fine query S, annidamento 0 --%> <h3 align="center"><font color="green">Utente cancellato dalla conferenza.</font></h3> <%-- <meta http-equiv="Refresh" content="5; url=http://localhost:8080/www/j2ee-sysconf/menu.jsp" /> --%> </fieldset> </div> <sql:closeConnection conn="conn1"/> <br /> <jsp:include page="bottom.jsp" flush="true" /> ![]() Spero serva a qualcuno questa mia creatura, mi sa che è l'unica sul forum, tenetevela preziosa!!! ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:00.