Inserimento valore int tramite request.getParameter()

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

Stai visualizzando 11 post - dal 1 a 11 (di 11 totali)
  • Autore
    Post
  • #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 11 post - dal 1 a 11 (di 11 totali)
  • Devi essere connesso per rispondere a questo topic.