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:
[code] <!–CALCULO JUROS SIMPLES–>
<div id=“calcJS” style=“position:absolute; top:100px; left:65px; width:500px; height:300px; background-color:green”>
Calculo dos Juros Simples
Fórmula: <strong> J = C x i x T</strong>
<!---IMAGEM DO GRAFICO DO DINHEIRO-->
<img />
<form name="formCalcSimples" method="POST" action="pagJurosSimples.jsp">
<p >Capital (C): </p> <input type="text" name="capital" value="" style="position:absolute; top:90px; left:140px" />
<p >Taxa (i): </p> <input type="text" name="taxa" value="" style="position:absolute; top:120px; left:140px" />
<p >Tempo (T): </p> <input type="text" name="tempo" value="" style="position:absolute; top:150px; left:140px" />
<input type="submit" value="Calcular" name="calcularJS" style="position:absolute; top:190px; left:20px; width:85px"/>
<input type="reset" value="Limpar" name="LimparCalculo" onclick="retornaFoco()" style="position:absolute; top:190px; left:110px; width:85px"/>
</form>
</div>
<%
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;
%>
<!--EXIBE O TOTAL...-->
<p >Juros: <%= total %> </p>
<div id="totJuros" style="position:absolute; left:300px; top:350px; width:250px; height:40px; background-color:blue; z-index:1; border: solid 2px">
</div>[/code]
ERRO:
[code]org.apache.jasper.JasperException: An exception occurred processing JSP page /pagJurosSimples.jsp at line 53
50: <%
51: double total = 0.0;
52: double capital = 0.0, taxa = 0.0, tempo = 0.0;
53: capital = Double.parseDouble(request.getParameter("capital"));
54: taxa = Double.parseDouble(request.getParameter("taxa"));
55: tempo = Double.parseDouble(request.getParameter("tempo"));
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)
[/code]
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…