[Dúvida] Erro ao processar dados em página JSP

Started by Triplo X, 24 de August , 2008, 12:21:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Triplo X

Oi, estou com um erro em minha primeira página JSP.

Quando clico no botão enviar, a página processar.jsp mostra os seguintes erros:


    HTTP Status 500 -   
     
    -------------------------------------------------------------------------------- 
     
    type Exception report 
     
    message 
     
    descriptionThe server encountered an internal error () that prevented it from fulfilling this request. 
     
   exception   
   
  org.apache.jasper.JasperException: java.lang.NumberFormatException: null 
   root cause   
     
   java.lang.NumberFormatException: null 




Segue o código:

<%--
    Document   : processar.jsp
    Created on : 23/08/2008, 08:40:44
    Author     : Francis
--%>
<html>
<head>
    <title>Processamento das informações</title>
</head>
<body>

<%  // tag de abertura de código JSP, dentro do código HTML
String sNome = request.getParameter("nome"); /**  utiliza o objeto "request" para capturar
                                               *  o parâmetro "nome" (que é o respectivo nome
                                               *  do input em index.jsp) e armazena-o em uma variável
                                               *  Objeto String.
                                               **/

int idade = Integer.parseInt(request.getParameter("idade"));  /** utiliza o objeto "request"
                                  * para capturar o parâmetro "idade" (a respectiva idade do input em "index.jsp")
                                  * e armazena-o em uma variável nativa do tipo int. Ocorre a conversão
                                  * para Inteiro a partir da ajuda da classe Integer.
                                   **/

out.println("Olá " +sNome+ "<br>");  /**  "out" é um objeto do tipo JspWriter, usado para escrever
                                        *   dados de retorno para o navegador, geralmente código HTML.
                                        * Aqui, há um código que faz com que a aplicação cumprimente o usuário pelo nome.
                                        */

out.println("Hoje você tem " +Integer.toString(idade)+ " anos de idade<br>");  /** Um pequeno cálculo realizado
                                  * com o valor inteiro da idade e a exibição deste resultado.
                                  */

%>

</body>
</html>

     
       



Segunda tentativa e mais erros:

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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

                                               *  Objeto String.
                                              **/

 int idade = Integer.parseInt(request.getParameter("idade"));  /** utiliza o objeto "request"
                                   * para capturar o parâmetro "idade" (a respectiva idade do input em "index.jsp")
                                   * e armazena-o em uma variável nativa do tipo int. Ocorre a conversão
                                   * para Inteiro a partir da ajuda da classe Integer.


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


root cause

java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:415)
java.lang.Integer.parseInt(Integer.java:497)
org.apache.jsp.processar_jsp._jspService(processar_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


Espero poder resolver este erro e continuar com meus estudos.

Obrigado.
Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...

Reeves

eu faria +/- assim:

<%@ page contentType="text/html; charset=utf-8" language="java"%>
<html>
<head>
    <title>Processamento das informações</title>
</head>
<body>
<form >
nome:  <input type="text" name="nome"></br>
idade: <input type="text" name="idade">
<input type="submit">
</form>

<%  String sNome = request.getParameter("nome");

if (request.getParameter("idade") != null ){
int idade = Integer.parseInt(request.getParameter("idade")); 

%>
Olá <%= sNome %> <br>

Hoje você tem <%= idade  %> anos de idade <br>

<% } %>

</body>
</html>
  °vº   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^

Triplo X

Sim, deste modo dá certo, mas o que eu estou tentando fazer é processar os valores em uma outra página. O seu código processa na mesma página.
Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...

Reeves

mas... eu fiz isso de exemplo... não tava com paciencia de usar 2 paginas...

enfim...

a ideia é a mesma kra...
unica coisa que muda é o action do form..
e esse q fiz funciona.. achei q serviria de exemplo.
  °vº   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^

Triplo X

Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...

Reeves

se procura algo mais "fino"
esse processar.jsp deveria ser um Servlet e não um jsp...
assim usando o processar para diversas páginas.. reutilizando ele..
ai no action do index chamaria o processar.java

=D
  °vº   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^

Triplo X

Mas no momento não trabalho diretamente com Servlets. Estou utilizando o NetBeans para programar em JSP e o BlueJ para o Java puro.

Logo logo eu entrarei mais a fundo na programação WEB e seguirei seu conselho. ;)

Mais uma vez, obrigado pela ajuda.

Até.
Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...