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

    [jsp]eliminare elemento da un elenco

    le domande che sto x farvi sembreranno banali,anch'io me ne accorgo ma non so xkè non riesco a risolverle.ho un carrello della spesa,affianco ad ogni elemento del carrello c'è un link x eliminarlo.ma non va.posto sia la classe java sia la pagina jsp.
    Carrello.java
    codice:
    package Prodotti;
    import java.util.*;
    public class Carrello{
    		Vector elementi = new Vector();
    		public  void deleteProdotto(String cod){
    			Enumeration enumElem=getElementi();
    			while(enumElem.hasMoreElements()){
    				Prodotto prod=(Prodotto)enumElem.nextElement();
    				if(prod.getintId().equals(cod)){
    					elementi.removeElement(prod);
    					break;
    		}	}	}
    		public Enumeration getElementi(){
    			return elementi.elements();
    }}
    ListaCarrello.jsp
    codice:
    <%@ page language="java" import="java.util.*" import="java.lang.*" import="Prodotti.*"%>
    <html> <head>
      	<title>'ListaCarrello.jsp'</title>
      	<script type="text/javascript">
    		function AllaRicerca() {
    				location.href = ("ricerca.jsp");
    		}
    	</script>	 </head>
      <body>
      <h2 align="center">Il tuo carrello della spesa</h2>
    
    
      <%   	Prodotto prod = new Prodotto();
      	List articolo = new Vector();
      	articolo=(Vector)session.getAttribute("Prodotto");
    	 String strClick = request.getParameter("B3");  
    	 if (strClick != null){
    		articolo.clear();
    		articolo=null;	
     %>	
     	<div align="center">
        		<input type="button" value="Torna in Ricerca" onclick="AllaRicerca()">
        	</div>
     <% 	return;
     	 } 
                 String name = request.getParameter("name");
    	Carrello carr = new Carrello();
    	if(name.equals("deleteItem")) {
    		int cod = request.getParameter(cod);
    		carr.deleteProdotto(cod);
    	}	
     	
    	if (request.getParameter("idProd") != null && request.getParameter("prod")!= ""){
    		String strId = request.getParameter("idProd");
         		Integer appoggio = null;
         		int intId = appoggio.parseInt(strId);
    		prod.setintId(intId);
    		String strQuant = request.getParameter("Quantità");
         		Integer app = null;
         		int intQuant = app.parseInt(strQuant);
         		prod.setintQuantità(intQuant);
                		String strNome = request.getParameter("NomeProd");
         		prod.setstrNome(strNome);
         		String strPrezzo = request.getParameter("PrezzoProd");
         		Float appog = null;
         		float fltPrezzo = appog.parseFloat(strPrezzo);
         		prod.setfltPrezzo(fltPrezzo);
    	             articolo.add(prod);
      	 	session.setAttribute("Prodotto", articolo);
      	}
    		List ListaGet = new Vector();
    		ListaGet = (Vector)session.getAttribute("Prodotto");
      %>
        <div align="center">
        <form action="ListaCarrello3.jsp" method="post">
      	 <table border=0 cellpadding=0 cellspacing=0>
      	<% 
      		for (int i=0; i<ListaGet.size(); i++){
      	%>
      		 <tr>
      	             	<td width="100">
      			<%= ((Prodotto)ListaGet.get(i)).getstrNome() %>
      	 		</td>
      	 		<td width="100">
      	 		Euro <%=((Prodotto)ListaGet.get(i)).getfltPrezzo() %>
      	 		</td>
      	 		<td width="100">
      	 		Quantità: <%=((Prodotto)ListaGet.get(i)).getintQuantità() %>
      	 		</td>
      	 		<td>
      	 		<a href="ListaCarrello3.jsp?name=deleteItem&cod=<%=((Prodotto)ListaGet.get(i)).getintId()%>">
      	 			Elimina</a>
      	 		</td>
      	 	</tr>
      	 <%	 } %> 
    	 <tr>
    	 	<td>
    	 	<input type="button" value="Torna in Ricerca" onclick="AllaRicerca()">
    	 	</td>
    	 	<td>
    	 	<input type="submit" value="Svuota carrello" name="B3">
    	 	</td>
    	 </tr>
    	 	</table>
    	 </form>	</div>  </body></html>
    i problemi sono: 1)nella pagina jsp non posso usare: int cod = request.getParameter(cod); xkè getParameter non si può usare con gli int ma non so come sostituirlo. 2) The method deleteProdotto(String) in the type Carrello is not applicable for the arguments (int) 3)ho usato equals in carrello.java x gli int ma lo potrei sostituire con == sperando che funzioni cmq

  2. #2
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    i problemi sono: 1)nella pagina jsp non posso usare: int cod = request.getParameter(cod); xkè getParameter non si può usare con gli int ma non so come sostituirlo.
    codice:
    int cod = Integer.parseInt(request.getParameter("cod"));
    2) The method deleteProdotto(String) in the type Carrello is not applicable for the arguments (int)
    questo dipende dall'errore precedente: cerchi di passare al metodo come parametro una stringa, quando invece il metodo vuole come parametro un int. Risolvendo l'errore precedente si risolve anche questo.
    3)ho usato equals in carrello.java x gli int ma lo potrei sostituire con == sperando che funzioni cmq
    per gli OGGETTI si usa .equals... per i "tipi base" (int, short, char, boolean, long, ecc. ) si usa ==

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    cambiando la pagina jsp con:
    codice:
    if(name.equals("deleteItem")) {
    		int intCod = Integer.parseInt(request.getParameter("cod"));
    		carr.deleteProdotto(intCod);
    }
    e la pagina .java con:
    codice:
    		int intCod = Integer.parseInt(request.getParameter("cod"));
    		while(enumElem.hasMoreElements()){
    			Prodotto prod=(Prodotto)enumElem.nextElement();
    			if(prod.getintId()==intCod){
    				elementi.removeElement(prod);
    				break;
    mi da:
    1) in .java: request cannot be resolved
    2) in .jsp: The method deleteProdotto(String) in the type Carrello is not applicable for the arguments (int)

    forse non ho ben applicato i tuoi suggerimenti ma se suggerisci qualke altro metodo+semplice anche senza usare il .java e facendo tutto nel .jsp,ben venga

  4. #4
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    ok facciamo cosi' (nn avevo letto il file .java ma solo il file .jsp).
    Ritorniamo alla versione "originale" (quella che hai postato del file .java), che andava benissimo.
    Nel jsp invece, partendo dalla versione "originale" anche qui, sostituisci:
    codice:
    int cod = request.getParameter(cod);
    con
    codice:
    String cod = request.getParameter("cod");
    e dovrebbe essere tutto a posto. Semplicemente gestisci sempre il codice come se fosse una stringa e non un intero, il che cmq e' sensato visto che difficilmente dovrai fare operazioni coi codici tipo sommarli o cose del genere

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    nel .java c'è un problema: if(prod.getintId().equals(cod)){
    xkè ho la classe Prodotto.java fatta così:
    codice:
    package Prodotti;
    public class Prodotto{
    	int intId;
    	String strNome;
    	String strDescrizione;
    	float fltPrezzo;
    	int intQuantità;	
    	public int getintId(){
    		return intId;}
    	public void setintId(int idProd){
    		intId=idProd;}	
    	public String getstrNome(){
    		return strNome;}
    	public void setstrNome(String nomeProd){
    		strNome=nomeProd;}	
    	public String getstrDescrizione(){
    		return strDescrizione;}
    	public void setstrDescrizione(String descrProd){
    		strDescrizione=descrProd;	}
    	public float getfltPrezzo(){
    		return fltPrezzo;}
    	public void setfltPrezzo(float prezzoProd){
    		fltPrezzo=prezzoProd;}
    	public int getintQuantità(){
    		return intQuantità;}
    	public void setintQuantità(int quantitàProd){
    		intQuantità=quantitàProd;}
    	public Prodotto(){}
    	public Prodotto(int i, String n, String d, float p,int q){
    		intId=i;
    		strNome=n;
    		strDescrizione=d;
    		fltPrezzo=p;
    		intQuantità=q;	}}

  6. #6
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    si allora... devi decidere come trattare la tua proprieta' "id" (attualmente si chiama intId) dell'oggetto Prodotto:
    - la tratti come stringa, quindi anche la proprieta' (e i relativi metodi get e set) diventano adatti una stringa. In questo caso non devi cambiare il metodo deleteProdotto, che gia' accetta come parametro una stringa.
    - la tratti ovunque come un int, quindi torni alla versione "originale", e metti nella JSP, al posto di:
    codice:
    int cod = request.getParameter(cod);
    questo:
    codice:
    int cod = Integer.parseInt(request.getParameter("cod"));
    (che era il suggerimento iniziale che ti avevo dato)

    nel file .java che che avevi postato all'inizio, sempre in versione "originale", invece, rimpiazza il metodo deleteProdotto(String cod) con questo:
    codice:
    public  void deleteProdotto(int cod){
    			Enumeration enumElem=getElementi();
    			while(enumElem.hasMoreElements()){
    				Prodotto prod=(Prodotto)enumElem.nextElement();
    				if(prod.getintId() == cod){
    					elementi.removeElement(prod);
    					break;
    		}	}	}
    		public Enumeration getElementi(){
    			return elementi.elements();
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    non so perchè ma tomcat mi da cmq questo errore:
    The method deleteProdotto(String) in the type Carrello is not applicable for the arguments (int)
    eppure ora sembra tutto int.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    l' HREF è giusto come l'ho fatto?

  9. #9
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    l'href mi sembra corretto.
    prova a spegnere tomcat, pulire la sua cache (cancella tutti i files e le cartelle che si trovano dentro cartella_di_tomcat/work/localhost), e a farlo ripartire... perche' effettivamente io vedo int dappertutto

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    ok...in effetti ora l'errore è cambiato,mi da:
    org.apache.jasper.JasperException: Exception in JSP: /ListaCarrello3.jsp:32

    30: String name = request.getParameter("name");
    31: Carrello carr = new Carrello();
    32: if(name.equals("deleteItem")) {
    33: int cod = Integer.parseInt(request.getParameter("cod"));
    34: carr.deleteProdotto(cod);

    root cause

    java.lang.NullPointerException

    giusto ke sia nullo,xkè non ho ancora cliccato sul link,ma xkè da errore, se non si verifica l'if dovrebbe cmq andare avanti...come x la funzione di sopra col click del pulsante

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.