Inserimento valore int tramite request.getParameter()

Blog Forum Java Inserimento valore int tramite request.getParameter()

Stai visualizzando 12 post - dal 1 a 12 (di 12 totali)
  • Autore
    Post
  • #1954
    Simone Lusini
    Ospite
    Up
    0
    Down
    ::

    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); //ERRORE

    #1955
    MrWolf
    Ospite
    Up
    2
    Down
    ::

    ciao,
    request getParameter restituisce una string. se hai bisogno di un intero devi convertire la stringa in int, tramite questo codice:

    
    int id= Integer.parseInt(request.getParameter("idStudente")); 
    
    #5816
    Luke
    Ospite
    Up
    0
    Down
    ::

    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?

    #5817
    ANTONIO PAGANO
    Ospite
    Up
    0
    Down
    ::

    Ciao, prova a commentare le righe dove fai il parseInt e stampa il valore di dipendenteId e ruoloId.
    Forse sono vuoti.

    #5819
    Luke
    Ospite
    Up
    0
    Down
    ::

    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).

    #5821
    ANTONIO PAGANO
    Ospite
    Up
    -1
    Down
    ::

    Ad occhio non passi i parametri correttamente. Posta la servlet e la jsp, così ho una visione completa.

    #5822
    Luke
    Ospite
    Up
    0
    Down
    ::

    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>

    #5829
    Antonio Pagano
    Ospite
    Up
    0
    Down
    ::

    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.

    #5832
    Luke
    Ospite
    Up
    0
    Down
    ::

    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

    #5837
    ANTONIO PAGANO
    Ospite
    Up
    0
    Down
    ::

    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.

    #5884
    Luke
    Partecipante
    Up
    0
    Down
    ::

    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.WebappStructureSerializer

    Come faccio a risolvere questo problema?

    #5887
    Antonio Pagano
    Amministratore del forum
    Up
    0
    Down
    ::

    Prova ad aggiungere questo plugin nel pom.xml
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.3.1</version>
    </plugin>
    </plugins>
    <finalName>check</finalName>
    </build>
    </project>

Stai visualizzando 12 post - dal 1 a 12 (di 12 totali)
  • Devi essere connesso per rispondere a questo topic.