|
|||||||
|
|
|
![]() |
|
|
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 17: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 17: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 10: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 17: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 20: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: 20:26.






















