|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1759
|
[Java] - Problemi con un if...else if...else if...else
Da una form in una jsp posso inserire autore e/o titolo di un libro in modo tale che poi mi venga mostrata una tabella con i risultati.
Funziona tutto correttamente se inserisco il nome dell'autore, oppure il titolo del libro (anche se sono sbagliati il tutto viene gestito correttamente), non funziona invece se metto entrambi o se non metto niente. Spiego cosa succede: - se metto sia autore che titolo: viene comunque eseguita la query che mi ritorna l'elenco di tutti i libri di quell'autore nel database invece del solo libro specifico - se non metto niente: ottengo una pagina vuota invece della errsearch.jsp (che ho visualizzato da parte ed è corretta) Questo è il codice che ho scritto, cosa c'è che non va? Codice:
String _autore = "";
String _titolo = "";
String address = "";
...
Statement stmt = dbconn.createStatement();
ResultSet rs = null;
_autore = request.getParameter("autore");
_titolo = request.getParameter("titolo");
if(!_autore.equals("") && !_titolo.equals("")) { //se entrambi i campi del form non erano vuoti
//cerca nel DB la corrispondenza sia per autore che per titolo
rs = stmt.executeQuery("Select ISBN, authors, title, summary FROM book WHERE authors='"+_autore+"' AND title='"+_titolo+"';");
}
else if(!_autore.equals("")) { //se il campo autore non era vuoto
//cerca nel DB la corrispondenza solo per autore
rs = stmt.executeQuery("Select ISBN, authors, title, summary FROM book WHERE authors='"+_autore+"';");
}
else if(!_titolo.equals("")) { //se il campo titolo non era vuoto
//cerca nel DB la corrispondenza solo per titolo
rs = stmt.executeQuery("Select ISBN, authors, title, summary FROM book WHERE title='"+_titolo+"';");
}
else { //se il campo autore e il campo titolo erano vuoti
//non bisogna cercare niente, c'è stato un errore nell'inserimento
address="/errsearch.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request, response);
}
if(rs.next()==false){ //se non ho trovato nessuna corrispondenza nel DB
address="/noresult.jsp"; //vado alla pagina che notifica l'assenza del libro
}
else { //se è stata trovata qualche corrispondenza
address="/searchresult.jsp"; //vado alla pagina che mostrerà i risultati della ricerca
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:37.



















