Tem como setar Object em variavel jstl?

Ex.:

<c:set var="obj">
   <% objeto.retornaUmLong("1","2"); %>
</c:set>

Bom, eu estou fazendo mais ou menos isso, e o retorno do método retornaUmLong é do tipo Long. Só que se eu executar:

<c:out value="${obj}" /> 

Não imprime nda. Somente se o retorno for String q imprime algo.
Alguém sabe se eu posso realmente fazer desta forma q to tentando?

Olá Fábio,

se você fizer:


<%  Object object = new Object(); %>

<c:set var="obj">
 <%= object.hashCode() %> 
</c:set> 

<c:out value="${obj}" />

Ele mostra na tela um número inteiro que é o hashCode desse objeto criado.

E se você fizer:


<%  Long number = 10L; %>

<c:set var="obj">
 <%= number %> 
</c:set> 

<c:out value="${obj}" />

Mostrará 10 na tela.

Então eu acho que seu método retornaUmLong não está retornando os dados corretamente ou seu objeto não foi importado na JSP.

[color=“darkred”]Tópico movido para JSP / Servlets.[/color]

Oi Carneiro, o problema é que você usou o sinal de igual lah no seu scriplet.
E fazendo desta forma ele converte o valor pra Strring.
Suponhamos que eu tenha um list.

<% List lst = minhaLista%>
<c:set var="obj">
<%lst;%> // != <%=lst%>
</c:set>

No exemplo acima é exibido em String a Lista,(+o- assim: java.util.List@12212). Eu quero trabalhar com long e não com String. :slight_smile:

Vlws msm assim.
Abraço.

Você não pode utilizar <% %> para mostrar resultados, por isso que é aí onde está o problema.

Mas por que você não pode utilizar <%= %> ?

Hm, isso que eu queria saber, então eu nao consigo fazer desta forma neh. :(… Bom, na verdade eu queria usar Date ao invés de Long, pq eu queria usar o <fmt:formatDate /> . E eu consigo usar o formateDate com objetos Date entendeu!? Mas eu já resolvi o meu problema aqui. Vlws. :slight_smile:

Qualquer dúvida é só postar novamente. :wink: