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 }

Rispondi quotando


