View Full Version : JSP e form di ricerca
Ciao.
Ho realizzato una pagina jsp che ricerca dei dati in un database,
in particolare dei libri in base al titolo.
Quello che non riesco a gestire sono le eccezioni,
cioè se si digita un titolo non presente nel DB esce la pagina bianca.
Quello che vorrei fare io e che uscisse un messaggio del tipo "libro non presente".
Ho provato cosi ma non funziona.
%><b>Eccezione:<</b> <%= e.toString() %><%
} finally {
if ("+title+" != "null" ) {
out.println("<h2>titolo non presente</h2>");
}
title e il parametro di imput nel forum.
Oh anche provato a fare un controlla quando "cattura la variabile" ma senza risultati
String title = request.getParameter("title");
if( request.getParameter(“title”) != null )
out.println("<h2>Inserire almeno una parola per effettuare una rcerca</h2>"); %>
Quello che succede e che il messaggio "inserire almeno una parola per effettuare una ricerca esce sempre
Beh il metodo migliore IMHO è da fare dopo la query che esegui: sicuramente avrai un while(rs.next()){ stampo i libri che ho trovato}
qua all'interno puoi benissimo metterci un contatore che lo vai ad incrementare ogni volta che trovi un libro
while(rs.next()){ stampo i libri che ho trovato; i++}
alla fine del ciclo while ci metti un bella if
if( i == 0){Non ho trovato libri}
else{ continua a fare quello che devi fare}
mentre se usi
if(rs.next()) {stampo i libri che ho trovato }else{Non ho trovato libri}
anche se questo caso non dovresti usarlo perchè puoi anche avere + libri con la chiave di ricerca inserita.
NapalM
cosi non mi è cambiato niente.
Se non trova niente mi da sempre pagina bianca
// Scorro e mostro i risultati.
while (resultset.next()) { int i=0; i++;
String Titolo = resultset.getString(1);
String Anno = resultset.getString(2);
String Autore = resultset.getString(3);
if (i==0) out.println("Non ci sta");
%>
Ovviamente la varibile int i=0 devi dichararla fuori dal while, altrimenti ad ogni giro te la riannulla.
Idem per il messaggio if (i==0), devi metterlo finito il while !
Ovviamente la varibile int i=0 devi dichararla fuori dal while, altrimenti ad ogni giro te la riannulla.
Idem per il messaggio if (i==0), devi metterlo finito il while !
Concordo, anche perchè nel codice postato non vedo la graffa che chiude il ciclo while
// Scorro e mostro i risultati.
int i = 0;
while (resultset.next()) {
String Titolo = resultset.getString(1);
String Anno = resultset.getString(2);
String Autore = resultset.getString(3);
i++;
}
if (i==0) out.println("Non ci sta");
%>
NapalM
Ho provato cosi ma non funziona:
// Scorro e mostro i risultati.
int i = 0;
while (resultset.next()) {
String Titolo = resultset.getString(1);
String Anno = resultset.getString(2);
String Autore = resultset.getString(3);
i++;
}
if (i==0) ; out.println("Non ci sta");
%>
%>
togliende } funziona ma naturalmente non fa nulla se no lasciare la pagina bianca.
Ma qual'è l'errore che genera?
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 68 in the jsp file: /ingegneria/ricercalibro3.jsp
Generated servlet error:
Syntax error, insert "Finally" to complete TryStatement
Generated servlet error:
Syntax error on token "catch", Identifier expected
Postami l'intero codice della pagina, hai sicuramente qualche graffa sparsa non aperta ed ecco perchè il mio codice non ti funziona.
Anche il ";" dopo l'if non ci và sennò ti stamperà sempre "Non ci sta" perchè non è nello statement dell'if.
NapalM
Xnapalm.
Hai visto il messaggio nei messaggi privati?
Grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.