mondor
Setembro 7, 2011, 2:10pm
#1
Pessoal,
Estou me batendo em algo muito básico
Na minha aplicação (estou usando vRaptor) eu mostro um Date. Vejam:
<c:forEach items="${lista }" var="users">
${users.dataCriacao }
</c:forEach>
O que me retorna por exemplo: 2011-08-31 00:23:32.0
Como faço para isto ficar em dd/MM/yyyy?
Já tentei com o fmt:formatDate e não deu muito certo. Também tentei outros métodos não elegantes, utilizando o <% %>, neste eu consigo realizar o procedimento, mas como deixar a váriavel ${users.dataCriacao } disponível dentro do código java?
<%
SimpleDateFormat outz = new SimpleDateFormat("dd/MM/yyyy");
out.print(outz.format(${users.dataCriacao }));
%>
A variável não vai ficar disponível ali
Outra, esta variável está me retornando uma String ou ela traz o tipo que está no meu array mesmo? (date)
Se puderem me ajudar, tanto com o fmt:formatDate quanto do outro jeito, plz!
Abraços
fmt:formatDate deveria funcionar…
Realmente, como você pega aquela variável com JSTL, não vai funcionar muito você usar scriptlet dentro.
Caso você precise disso urgente, faça do modo feio mesmo. Troque a tag c:forEach por mais scriptlet.
Senão, use fmt mesmo.
mondor
Setembro 8, 2011, 9:35am
#3
Fernando tudo bem, mas aí eu caio na mesma…
Como eu vou conseguir pegar minha variável lista no scriptlet? Para executar o meu for por ali
Qual é o tipo do seu campo data? Se for Calendar, tente usar o fmt:formatDate colocando o nome da sua variável assim: ${users.dataCriacao.time}
mondor
Setembro 8, 2011, 10:52am
#5
felipe, é um date, estou usando hibernate e vRaptor…
aqui eu ponho a lista para ficar disponível na JSP:
@Get @Path("/adm/usuarios/lista")
public void listaUsuario() {
List<Usuario> usuarios = new ArrayList<Usuario>();
List<Usuario> lista = userDao.listaTodos();
for (Usuario users : lista) {
Usuario novoUser = new Usuario();
novoUser.setId(users.getId());
novoUser.setLogin(users.getLogin());
novoUser.setNome(users.getNome());
novoUser.setEmail(users.getEmail());
novoUser.setDataCriacao(users.getDataCriacao());
novoUser.setPerfil(users.getPerfil());
usuarios.add(novoUser);
}
result.include("lista", usuarios);
}
e no meu banco essa dataCriacao é um simples:
private Date dataCriacao;
com o meu .time igual você diz, me dá este erro:
javax.el.ELException: Cannot convert 1.314.761.012.000 of type class java.lang.Long to class java.util.Date
Ah, como é Date mesmo, não precisa do .time…
Você pode fazer assim:
<fmt:formatDate value="${users.dataCriacao}" type="date" pattern="dd/MM/yyyy"/>
Ah! E o Date é o java.sql.Date?
mondor
Setembro 8, 2011, 12:03pm
#7
Cara, acho que era esse type=“date”… estava fazendo só com o value e pattern, agora funcionou, muuuuuuuuito obrigado felipe
em relação ao meu date, era um java.util.Date mesmo
Obrigadão! Abraços