Parse Long com Expression Language

3 respostas Resolvido
R

Ola Boa tarde a todos.

Como faço para fazer um parseLong de um parametro recebido de uma JSP ? Recebo o paramêtro como string via EL e estou usando Scriptlet para tentar setar ele em um objeto, porém esta acusando erro 500 na linha do ParseLong.

Código da Jsp que recebe o paramêtro:

<%
		ParamCompra compra = new ParamCompra();%>
		<% compra.setQtSacos(Long.parseLong("${novoParamCompra.qtSacos}"));
 %>

Erro:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/Planilha/analise.jsp at line 21

18: 	<%
19: 		ParamCompra compra = new ParamCompra();%>
20: 		<%=compra.getQtSacos() %>
21: 		<%compra.setQtSacos(Long.parseLong("${novoParamCompra.qtSacos}"));
22:  %> 
23: 	
24:

Existe alguma outra forma mais fácil de se fazer isto ? Ou mais correta ?

3 Respostas

darlan_machado
Solucao aceita

Não, você não usa EL dessa maneira.
EL é só para que, ao interpretar a JSP, o java já escreva o valor direto daquele atributo.
Você vai precisar obter o parâmetro do escopo onde o colocou (request, session) e, então, pegar o valor que deseja.
Algo como:

<% 
    Pessoa pes = (Pessoa) session.getAttribute("pessoa"); 
    int idade = pes.getIdade();
%>

Note que existe um cast explícito, afinal, o que fica na sessão ou no request é um object.
Entendeu?

Só lembrado que usar scriptlet é mais feio que encoxar a mãe no tanque.

R

Blz, obrigado Darlan vou usar a Session e trocar pra TagLibs !

Ri alto do encoxar a mãe no tanque kkkk

darlan_machado

A título de curiosidade, quando eu comecei a desenvolver em Java, em 2010, já não se usava, há tempos, scriptlet.
É importante saber como funciona e tals, mas, eu sou absolutamente radical com relação ao uso de tecnologias retrógradas.
E o mãe no tanque vem de um ditado a respeito dos punks “punk que é punk encoxa a mãe no tanque”.

Criado 23 de janeiro de 2018
Ultima resposta 23 de jan. de 2018
Respostas 3
Participantes 2