Corso Live Part-time Su Fondamenti Di Java › Forum › Java › Inserimento valore int tramite request.getParameter()
- Questo topic ha 11 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 8 mesi fa da Antonio Pagano.
-
AutorePost
-
3 Maggio 2020 alle 11:30 #1954Simone LusiniOspite::
Buongiorno ! Sto provando ad inserire un valore int tramite browser in una richiesta servlet con il comando request.getParameter(), che però inserisco solo una stringa. Come faccio ad inserire appunto, un valore che non è String, ma int?
ES:
String n= request.getParameter(“nome”); //OK
String c= request.getParameter(“cognome”); //OK
int id= request.getParameter(idStudente); //ERRORE3 Maggio 2020 alle 19:38 #1955MrWolfOspite13 Marzo 2022 alle 17:07 #5816LukeOspite::Salve a tutti e per quanto riguarda per le classi jsp invece? io ho rilevato un problema facendo in questo modo.
<p>ID Dipendente:
<% String dipendenteId=request.getParameter(“DipendenteID”);
if(dipendenteId !=null){
int matrDip = Integer.parseInt(dipendenteId);
out.print(matrDip); } %>
</p><br/><p>ID Ruolo:
<% String ruoloId = request.getParameter(“RuoloID”);
if(ruoloId != null){
int codRuolo = Integer.parseInt(ruoloId);
out.print(codRuolo); } %>
</p><br/>Mi porta un errore null di tipo java.lang.NumberFormatException. come si risolve?
14 Marzo 2022 alle 08:31 #5817ANTONIO PAGANOOspite15 Marzo 2022 alle 21:39 #5819LukeOspite::Buonasera Prof. Purtroppo mi da errore anche così e mi esce questo errore:
Context Path:/it.azienda.project
Servlet Path:/StoricoServlet
Path Info:null
Query String:null
Stack Trace
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:542)
java.lang.Integer.parseInt(Integer.java:615)
servlet.StoricoServlet.doGet(StoricoServlet.java:41)
servlet.StoricoServlet.doPost(StoricoServlet.java:109)…..
…..
io alla mia Servlet ho trasformato dei paramentri da stringa ad intero con il parseInt(). Alla classe jsp come faccio a memorizzare numeri interi? (Inoltre ho creato un file html dove attraverso un form passo tutti i parametri stringhe e interi).16 Marzo 2022 alle 08:26 #5821ANTONIO PAGANOOspite16 Marzo 2022 alle 10:34 #5822LukeOspite::Allora questo è il doGet della Servlet Storico:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String tipoOperazione = request.getParameter(“operazione”);
StoricoDAO std = new StoricoDAO();if(tipoOperazione.equals(“insert”)) {
Storico s = new Storico();String impId = request.getParameter(“ImpiegatoID”);
int matricolaImp = Integer.parseInt(impId);String ruoloId = request.getParameter(“RuoloID”);
int codiceRuolo = Integer.parseInt(ruoloId);String dateStarted = request.getParameter(“DataInizio”);
String dateFinished = request.getParameter(“DataFine”);s.setImpiegatoID(matricolaImp);
s.setRuoloID(codiceRuolo);
s.setDataInizio(dateStarted);
s.setDataFine(dateFinished);try {
std.insert(s);
} catch (SQLException e) {
e.printStackTrace();
}
}else if(tipoOperazione.equals(“update”)) {
Storico s = new Storico();
String dateStarted = request.getParameter(“DataInizio”);
String dateFinished = request.getParameter(“DataFine”);String storicoId = request.getParameter(“StoricoID”);
int id =Integer.parseInt(storicoId);s.setDataInizio(dateStarted);
s.setDataFine(dateFinished);
s.setStoricoID(id);try {
std.update(s);
} catch (SQLException e) {
e.printStackTrace();
}
}else if(tipoOperazione.equals(“delete”)) {
String storicoId = request.getParameter(“StoricoID”);
int id =Integer.parseInt(storicoId);try {
std.delete(id);
} catch (SQLException e) {
e.printStackTrace();
}
}
request.getRequestDispatcher(“/storico.jsp”).forward(request, response);}
Mentre per la jsp ho modificato qualcosina è l’ho rifatta in questo modo:
<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title>Insert Complete</title>
</head>
<body><p> ID Impiegato:
<% int ImpiegatoId = Integer.parseInt(request.getParameter(“ImpiegatoID”));
out.print(ImpiegatoId); %>
</p> <br/><p> ID Ruolo:
<% int RuoloId = Integer.parseInt(request.getParameter(“RuoloID”));
out.print(RuoloId); %>
</p> <br/><p>Data Inizio Lavoro:
<% String dateStarted =
request.getParameter(“dataInizio”);
out.print(dateStarted); %> <br/>
Data Fine Lavoro:
<% String dateFinished =
request.getParameter(“dataFine”);
out.print(dateFinished); %> <br/>
</p></body>
</html>17 Marzo 2022 alle 09:24 #5829Antonio PaganoOspite::Se ho capito bene, prima viene invocata la servlet e poi storico.jsp.
Nella jsp hai usato, giustamente, request.getParameter(ImpiegatoID) ma nella servlet non hai usato request.setParameter per valorizzare ImpiegatoID.
RIcordati che get e setParameter hanno validità di una request, cioè valgono solo per una chiamata, nella successiva non saranno pù visibili.
Detto in altri termini, se nella serlvet request.getParameter(“ImpiegatoID”); ti ritorna un valore,
nella jsp no.
Per fartelo ritornare anche nella jsp devi usare request.setParameter nella servlet
Fammi sapere se sono stato chiaro.17 Marzo 2022 alle 12:35 #5832LukeOspite::Allora io dall url invoca il form HTML per compilare tutti i campi, dal form passo alla servlet che mi dovrebbe confermare i dati inseriti e da li passo alla jsp che mi ritorna la pagina con i dati che avevo inserito nel form; ma purtroppo mi da errore.
Inoltre Prof ho utilizzato i setter della classe Storico per inserire i valori nei campi.
Storico s = new Storico();
String dateStarted = request.getParameter(“DataInizio”);
String dateFinished = request.getParameter(“DataFine”);String impId = request.getParameter(“ImpiegatoID”);
int matricolaImp = Integer.parseInt(impId);String ruoloId = request.getParameter(“RuoloID”);
int codiceRuolo = Integer.parseInt(ruoloId);s.setImpiegatoID(matricolaImp);
s.setRuoloID(codiceRuolo);
s.setDataInizio(dateStarted);
s.setDataFine(dateFinished);Infine, ho provato a fare il request.setParameter() ma esce un errore con la scritta: “The method setParameter(int) is undefined for the type HttpServletRequest”.
NB: Sto impazzendo! XD
18 Marzo 2022 alle 08:35 #5837ANTONIO PAGANOOspite::Il metodo setParameter prevede due parametri in ingresso: il nome della variabile e il valore. Tu invece ne passi uno.
Mandami tutto il codice completo, quindi, se ho ben capito, due jsp e la servlet.
Puoi copiarlo qua sul forum oppure su questo sito https://pastebin.com/ e poi posti il link.26 Marzo 2022 alle 17:04 #5884LukePartecipante::Salve prof, alla fine sono riuscito a risolvere ed andare avanti con l’esercizio. Tuttavia adesso mi trovo d’avanti un altro ostacolo quando creo un nuovo progetto con maven.
Il problema è nel file pom.xml che mi da un errore con scritto:
Impossibile inizializzare la classe
org.apache.maven.plugin.war.util.WebappStructureSerializerCome faccio a risolvere questo problema?
27 Marzo 2022 alle 18:00 #5887Antonio PaganoAmministratore del forum -
AutorePost
- Devi essere connesso per rispondere a questo topic.