Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    146

    [JSP/JAVA]C'è un modo per eseguire il comando request.GetParameter("") da un bean?

    Come da titolo c'è un modo per eseguire il comando request.GetParameter("") da un bean?

    mi sembra di capire che non si può fare perchè il metodo non può essere richiamato al di fuori di un servlet container..però sarebbe utile in certi casi...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    146
    il mio problema comunque è che quando uso il comando: p.setEta(request.getParameter("eta"));

    Ottengo l'errore:

    The method setEta(int) in the type persona is not applicable for the arguments (String)

    Questo perchè nel bean età è un intero mentre io gli passo la stringa.

    Se provo con:

    if (request.getParameter("eta").length()!=0) {p.setEta(Integer.parseInt(request.getParameter("e ta")));}

    e il campo eta prelevato dal form è nullo mi imposta eta=0!

    se invece il campo età ha un valore impostato la query di aggiornamento funziona

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Forse perché devi rivedere il metodo setEta. Tutto quanto trasmesso è, in linea generale, in formato String (oppure flusso di byte). In un'applicazione che prevede il campo età o qualsiasi altro campo di un form settato con un valore plausibile e consistente, vorrai reindirizzare l'utente alla pagina contenente il form ogniqualvolta vi siano delle incongruenze/inesattezze/inconsistenze nell'inserimento dei dati (magari raccogliendo e presentando tutti i problemi in una sola volta).

    In definitiva il tuo metodo setEta dovrà essere qualcosa del genere:

    codice:
    public void setEta(String etaS) {
      try {
        eta = Integer.parseInt(request.getParameter("eta"));
        if (eta <= 0) {
          //reindirizza al form oppure in una gestione più completa salva da qualche parte (Session)
        // l'informazione che una volta reindirizzati al form, il campo Età sarà da correggere
        }
      }
      catch (NumberFormatException e) {
        //reindirizza al form oppure in una gestione più completa salva da qualche parte (Session)
        // l'informazione che una volta reindirizzati al form, il campo Età sarà da correggere  
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    146
    grazie, ora vedo che posso fare. Io avevo risolto considerando eta come un stringa. Sembra funzionare tutto anche se non mi pare una soluzione ottimale...

    Secondo te perchè ottengo 0 quando il campo età è vuoto?

    forse c'entra qualcosa questo?

    if (eta.length()!=0) query+="Eta="+eta+", ";//questa riga è nel file.jsp

    //questo invece riguarda il metodo public boolean aggiornaPersona()

    String etaa = Integer.toString(eta);//converte l'intero in stringa
    if (etaa.length()!=0) query+="Eta="+eta+", ";

    Il mio ragionamento è questo:
    nella pagina.jsp, request.getParameter("eta") mi ritorna una stringa.

    IL mio metodo setEta invece ha come parametro d'ingresso un int.

    qiundi io con l'if verifico che la stringa eta non sia vuota. Se NON è vuota allora la trasformo in int e la mando alla funziona setEta. Il codice che fa cio è questo:

    if (request.getParameter("eta").length()!=0) {p.setEta(Integer.parseInt(request.getParameter("e ta")));}

    Ovviamente nel caso in cui eta è vuota il metodo setEta non entra in funzione.

    Nel metodo public boolean aggiornaPersona() invece cè il seguente codice:

    String etaa = Integer.toString(eta);//converte l'intero in stringa
    if (etaa.length()!=0) query+="Eta="+eta+", ";

    credo che il problema sia qui..Se eta è vuoto lui converte l'int vuoto in zero..

  5. #5
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Relativamente agli attributi, non ne esistono di "vuoti": Java assegna loro un valore di default (0 per gli int, null per gli oggetti, e così via) e se tu non fai nulla per modificarlo, quello è e quello rimane. Non modificando mai "eta" (come avviene nel caso in cui il parametro della richiesta è vuoto) il suo valore rimane quindi a 0: se questa situazione non è accettabile per la tua applicazione devi essere tu a prevederlo, eventualmente generando delle eccezioni.
    Una possibile sequenza di controlli può essere questa:
    - parametro null
    - parametro di lunghezza 0
    - parametro non numerico
    - parametro numerico ma con valore scorretto
    - altri controlli

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    146
    capito grazie

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.