Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213

    [JSP]eliminare dal database

    ho una pagina jsp in cui c'è un link (elimina) affianco all'elemento x eliminarlo dal db.
    la pag jsp è:
    codice:
    <%@ page language="java" import="java.sql.*" import="Prodotti.*" import="java.util.*" import="java.lang.*"%>
    <html><head><title>'dettaglioUtente.jsp'</title>
      	<script type="text/javascript">
    		function Uscita() {
    			location.href = ("index.html");
    		}
    		function Indietro() {
    			location.href = ("Utenti.jsp");
    		}
    	</script>	
      </head>
      <body>
      <%	Utente utUser = new Utente();
      	int id_Ut= Integer.valueOf(request.getParameter("idUtente")).intValue();
         	String strSQL="SELECT id,nome,cognome,user FROM UTENTI WHERE id="+id_Ut;
           	String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
         	String strNomeConnessione="jdbc:odbc:database";
       	Class.forName(strDriver);
       	Connection conn=null;
       	conn=DriverManager.getConnection(strNomeConnessione);
       	Statement stmDb=conn.createStatement();
       	ResultSet rsRisultato=null;
       	rsRisultato=stmDb.executeQuery(strSQL);
       	rsRisultato.next();
       	String name = request.getParameter("name");
     	if(name != null && name.equals("deleteItem")) {
    		int cod = Integer.parseInt(request.getParameter("cod"));
    		utUser.deleteUtente(cod);
    	 }  %>
        <div align="center">
        <form action="ListaCarrello3.jsp" method="post">
        <table border=0 cellpadding=0 cellspacing=0>
      	 <tr>
      	   	<td width="60">
                 	     <% int intId=rsRisultato.getInt("id");
      	   	          out.print(intId); %>
      	   	</td>
      	   	<td width="90">
      	 	    <%String strCognome=rsRisultato.getString("cognome");
      	 		out.print(strCognome);%>
      	 	</td>
      	   	<td width="90">
      	 		<%String strNome=rsRisultato.getString("nome");
      	 		out.print(strNome);%>
      	 	</td>
      	   	<td width="90">
      	 	             <%String strUser=rsRisultato.getString("user");
      	 		out.print(strUser);	%>
      	 	</td>
      	 	<td>
      	 	<a href="dettaglioUtente.jsp?name=deleteItem&cod=<%= intId%>">
      	 			Elimina</a>
      	 	</td>
      	 </tr>
      </table>  </form>  </div> 	
    
    
      	<div align="center">
      	<table border=0 cellpadding=0 width="20%" cellspacing=0>
      		<tr>
    		      <td>
    			<p align="center">
    			<input type="button" value="Indietro" onclick="Indietro()">
    			</p>
    		       </td>
    		       <td></td>
    		       <td>
    			<p align="center">
    			<input type="button" value="Esci" onclick="Uscita()">
    			</p>
    		         </td>
    		</tr>
      </table>  </div>	
        <%  	rsRisultato.close();
      	conn.close();   %> 			
      </body></html>
    pag java è:
    codice:
    package Prodotti;
    import java.sql.*;
    public class Utente{
    	int intId;
    	String strNome;
    	String strCognome;
    	String strUser;
    	String strPass;
    	public int getintId(){
    		return intId;
    	}
    	public void setintId(int idUtente){
    		intId=idUtente;
    	}
    	public String getstrNome(){
    		return strNome;
    	}
    	public void setstrNome(String nomeUtente){
    		strNome=nomeUtente;
    	}
    	public String getstrCognome(){
    		return strCognome;
    	}
    	public void setstrCognome(String cognUtente){
    		strCognome=cognUtente;
    	}
    	public String getstrUser(){
    		return strUser;
    	}
    	public void setstrUser(String userUtente){
    		strUser=userUtente;
    	}
    	public String getstrPass(){
    		return strPass;
    	}
    	public void setstrPass(String passUtente){
    		strPass=passUtente;
    	}
    	public  void deleteUtente(int cod){
    
    	    String strSQL="DELETE FROM UTENTI WHERE id="+cod;
    	}
    }
    con questo codice tomcat mi da questo errore anche se il valore dell'id nell'url c'è:
    exception
    org.apache.jasper.JasperException: Exception in JSP: /dettaglioUtente.jsp:19

    16: <body>
    17: <%
    18: Utente utUser = new Utente();
    19: int id_Ut= Integer.valueOf(request.getParameter("idUtente")). intValue();
    20: String strSQL="SELECT id,nome,cognome,user FROM UTENTI WHERE id="+id_Ut;

    root cause

    java.lang.NumberFormatException: null

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    probabilmente l'errore è nell'href...ma non capisco perchè e come modificarlo...poi non so come risolvere il deleteUtente nella classe java,ciè come utilizzare la query nella classe java

  3. #3
    Ma nell'href manca il parametro idUtente. Definisci solo name e cod.

    per la query di delete devi utilizzare il metodo executeUpdate(stringa_query) sullo statement associato alla connessione.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    idUtente mi serve x riprendere l'id da una pagina precedente e usarlo nella query...nell'href non mi dovrebbe servire...l'id dell'utente lì è cod

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    se nella classe java faccio:
    codice:
    public  void deleteUtente(int cod){
    		String strSQL="DELETE FROM UTENTI WHERE id="+cod;
    		executeUpdate(strSQL);
    }
    mi da: The method executeUpdate(String) is undefined for the type Utente. e poi non ho capito come usare lo statement che ho nella jsp.

  6. #6
    Ma l'errore di NumberFormatException te lo da quando premi sul link presente nella pagina jsp che hai postato? Oppure la pagina jsp non ti compare proprio?

    Per quanto riguarda la query per il delete, se vuoi che la stringa della query sia prelevata dalla tua classe java, allora modifica il metodo deleteUtente in modo che ti restituisca il valore della stringa-query. Questo valore lo utilizzi come parametro di executeUpdate sullo statement nella jsp:

    codice:
    stmDb.executeUpdate(utUser.deleteUtente(cod));
    e il metodo diventa:

    codice:
    public  String deleteUtente(int cod){
         return "DELETE FROM UTENTI WHERE id="+cod;
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    la pagina compare, è al click del link che compare la pagina d'errore

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    l'errore poi me lo da all'inizio della pagina jsp...quindi forse ci sarà qualche problema quando la ricarica....non so rpoprio come risolverlo

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    il problema dovrebbe essere che quando ricarca la pagina,non trova l'id passato precedentemente,lo mette a null ed esce.se lo chiudo tra if e metto la parte che richiama deleteUtente prima o dopo l'if,poi questa non vede la variabile name che sta nell'href chiuso nell'if

  10. #10
    Se ho ben capito, quando richiami la jsp hai nell'indirizzo il parametro idUtente...

    Ora se clicchi sul link è normale che il riferimento a questo parametro sia perso, perchè stai effettuando una nuova richiesta "slegata" dalla precedente. Per risolvere il problema devi inserire nuovamente il parametro nel link che clicchi. Pertanto il valore di href diventa una cosa del genere:

    codice:
    ">Elimina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.