Erro ao trabalhar com página JSP

1 resposta
FabricioPJ

Olá a todos. Em minha página JSP, possuo um form com 3 campos, que são números. É necessário realizar uma multiplicação entre esses números para posteriormente seu resultado ser exibido na mesma página. O problema é que quando faço a conversão da String que me é retornada, para double, o Tomcat lança uma exception. Segue o código e a exception abaixo:

<!--CALCULO JUROS SIMPLES-->
        <div id="calcJS" style="position:absolute; top:100px; left:65px; width:500px; height:300px; background-color:green">
            <p >Calculo dos Juros Simples</p>
            <p >Fórmula:    &lt;strong&gt; J = C x i x T&lt;/strong&gt;   </p>

            &lt;!---IMAGEM DO GRAFICO DO DINHEIRO--&gt;
            <img     />

            &lt;form name="formCalcSimples" method="POST" action="pagJurosSimples.jsp"&gt;
                <p >Capital (C): </p>    &lt;input type="text" name="capital" value="" style="position:absolute; top:90px; left:140px" /&gt;
                <p >Taxa (i): </p>    &lt;input type="text" name="taxa" value="" style="position:absolute; top:120px; left:140px" /&gt;
                <p >Tempo (T): </p>    &lt;input type="text" name="tempo" value="" style="position:absolute; top:150px; left:140px" /&gt;
                &lt;input type="submit" value="Calcular" name="calcularJS" style="position:absolute; top:190px; left:20px; width:85px"/&gt;
                &lt;input type="reset" value="Limpar" name="LimparCalculo" onclick="retornaFoco()" style="position:absolute; top:190px; left:110px; width:85px"/&gt;
            &lt;/form&gt;
        &lt;/div&gt;

        &lt;%
        double total = 0.0;
        double capital = 0.0, taxa = 0.0, tempo = 0.0;
        capital = Double.parseDouble(request.getParameter("capital"));
        taxa = Double.parseDouble(request.getParameter("taxa"));
        tempo = Double.parseDouble(request.getParameter("tempo"));
        total = capital * taxa * tempo;
        %&gt;

        &lt;!--EXIBE O TOTAL...--&gt;
        <p >Juros: &lt;%= total %&gt; </p>
        &lt;div id="totJuros" style="position:absolute; left:300px; top:350px; width:250px; height:40px; background-color:blue; z-index:1; border: solid 2px"&gt;
            
        &lt;/div&gt;

ERRO:

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

50:         &lt;%
51:         double total = 0.0;
52:         double capital = 0.0, taxa = 0.0, tempo = 0.0;
53:         capital = Double.parseDouble(request.getParameter(&quot;capital&quot;));
54:         taxa = Double.parseDouble(request.getParameter(&quot;taxa&quot;));
55:         tempo = Double.parseDouble(request.getParameter(&quot;tempo&quot;));
56:         total = capital * taxa * tempo;


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)

root cause

java.lang.NullPointerException
	sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)
	java.lang.Double.parseDouble(Double.java:510)
	org.apache.jsp.pagJurosSimples_jsp._jspService(pagJurosSimples_jsp.java:102)
	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)

Creio que seja um erro besta, mas com a minha pouca experiência, não pude detecta-lo.

Espero a ajuda dos colegas.

PS - Eu sei que usar Scriptlets não é uma boa prática de programação, mas eu desejo aprender todas as maneiras possíveis de se trabalhar...

1 Resposta

FabricioPJ

acho que consegui usando EL. Vejam:

&lt;c:set var="capital" value="${param['capital']}" /&gt;
        &lt;c:set var="taxa" value="${param['taxa']}" /&gt;
        &lt;c:set var="tempo" value="${param['tempo']}" /&gt;

        &lt;!--EXIBE O TOTAL...--&gt;
        <p >Juros: ${capital * taxa * tempo}</p>
Criado 15 de outubro de 2009
Ultima resposta 15 de out. de 2009
Respostas 1
Participantes 1