PDA

View Full Version : errore: java.lang.Integer cannot be cast to java.lang.String


maridelsud
15-07-2014, 16:55
ciao a tutti, sono quasi alla fine del mio progetto, un sito web dinamico che gestisce un lido balneare, con eclipse, in java e con pagine jsp.
Sto facendo adesso la parte in cui un utente può prenotare una cabina in questo lido. alla fine della prenotazione, l'utente ha deciso la data iniziale, la data finale, ha scelto eventuali servizi (sono acqua, asciugamani, elettricità), e io faccio il conto dello sconto, e dovrei aggiungere una riga alla tabella "Prenotazioni" nel mio database (mysql).
Sto usando le session per tenere traccia dei dati nelle pagine jsp.

nell'ultima pagina jsp, quella che richiama il metodo che aggiunge la riga alla tabella prenotazioni, richiamo un po di dati con le session. l'errore me lo da in quell'occasione.
Il problema è che ho grosse difficoltà a passare gli INT alle sessioni...ho perfino provato a convertirli in stringhe, passarli alla sessione, riconvertirli in INT, ma niente....
il codice dove prendo gli INT è:

calcolaDurata stagista = new calcolaDurata();


int durata = stagista.durata(dataI, dataF);
String durataStr = Integer.toString(durata);

session.setAttribute("durataStr", durata);


il codice dove provo a riprendermi la "durata", che è quello alla pagina jsp successiva, è:

String durataS = (String) session.getAttribute("durataStr");
int durata = Integer.parseInt("durataS");
System.out.println("DURATA INT " + durata);


mi da l'errore:

org.apache.jasper.JasperException: An exception occurred processing JSP page /UconfermaPrenotazione.jsp at line 21


la linea 21 è proprio

String durataS = (String) session.getAttribute("durataStr");

e dice poi appunto:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

onbi
15-07-2014, 16:59
int durata = Integer.parseInt("durataS");

non ci vanno le virgolette.

maridelsud
15-07-2014, 17:10
int durata = Integer.parseInt("durataS");

non ci vanno le virgolette.

ho provato a toglierle e mi da lo stesso identico errore

[Kendall]
15-07-2014, 17:18
org.apache.jasper.JasperException: An exception occurred processing JSP page /UconfermaPrenotazione.jsp at line 21


la linea 21 è proprio

String durataS = (String) session.getAttribute("durataStr");

e dice poi appunto:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String


String durataS = session.getAttribute(durataStr).toString()

maridelsud
15-07-2014, 19:26
;41314550']
String durataS = session.getAttribute(durataStr).toString()




ho scoperto l'errore era solo "distrazione" :nono:
nel codice:


calcolaDurata stagista = new calcolaDurata();

int durata = stagista.durata(dataI, dataF);
String durataStr = Integer.toString(durata);

session.setAttribute("durataStr", durata);

dentro session ci mando durata, e non durataStr scusatemi