lazaropj 24 de out. de 2012
Para vc usar a lista no JSP vc usa uma EL e JSTL.
Não sei se tem como mandar a lista novamente… mas acho q pode sim.
O Lucas(pai do VRaptor) pode te ajudar melhor nisso.
lmonqueiro 24 de out. de 2012
Para mostrar eu uso jstl
<c:forEach var=“aaa” items="${minhalista}">
${aaa.id}
${aaa.nome}
${aaa.email}
até aí tudo bem, mas o que tenho que fazer no jsp pra que essa lista possa ser usada em outro método ?
kadu.m.lino 24 de out. de 2012
mas pq vc qr devolver pra um outro método se vc jáh a tem no servidor?
lmonqueiro 24 de out. de 2012
Então, devo estar fazendo algo errado. o Primeiro código que fiz, abaixo, quando dava o redirect, quando entrava no usuarioCadastro, a lista já estava nula. Debugando, percebi que ele sempre entra no UsuarioController e ali a lista já não tem nada.
@Resource
public class UsuarioController {
private Result result ;
private UsuarioDao dao = new UsuarioDao ();
private List < Usuario > lista ;
public UsuarioController ( Result result , List < Usuario > lista ) {
this . result = result ;
this . lista = lista ;
}
@Get ( "/usuarioStart" )
public void usuarioStart () throws SQLException {
lista = dao . getLista ();
result . redirectTo ( UsuarioController . class ). usuarioCadastro ( );
}
@Get ( "/usuarioCadastro" )
public void usuarioCadastro () {
result . include ( "minhalista" , lista );
}
@Get ( "/usuarioTeste" )
public void usuarioTeste () {
result . redirectTo ( UsuarioController . class ). usuarioCadastro ( );
}
}
lmonqueiro 24 de out. de 2012
Alguém sabe onde está o erro ?
kadu.m.lino 25 de out. de 2012
Desculpa a demora Imonqueiro, mas só vi agora
coloca seu construtor assim
public UsuarioController ( Result result , UsuarioDAO dao ) {
this . result = result ;
this . lista = new ArrayList <> ();
this . dao = dao ;
}
não esqueça de anotar a class UsuarioDAO como @Componet , para que o vraptor injete o dao pra vc…
lmonqueiro 25 de out. de 2012
trodrigo 30 de out. de 2012
Aproveitando o tópico
como eu posso recuperar na jsp os valores de um atributo que é uma coleção de outra classe:
Exemplo:
public class Pessoa () {
private int id ;
private String nome ;
....
private Collection & lt ; Telefone & gt ; telefones ;
public Collection & lt ; Telefone & gt ; getTelefone () {
return telefones ;
}
...
}
public class Telefone {
@EmbeddedId
private final TelefonePk pk ;
public TelefonePk getPk () {
return pk ;
}
...
}
public class TelefonePk implements Serializable {
private String numero ;
private String ddd ;
public TelefonePk () {
super ();
}
....
}
Eu achei que fosse algo parecido com
& lt ; c : forEach items = "${pessoaList}" var = "pessoa" & gt ;
& lt ; tr & gt ;
& lt ; td & gt ; $ { pessoa . nome } & lt ; / td & gt ;
& lt ; td & gt ; $ { pessoa . cpf } & lt ; / td & gt ;
& lt ; td & gt ; $ { pessoa . telefone . pk . numero } & lt ; / td & gt ;
...
& lt ; / c : forEach & gt ;
alguém poderia me ajudar???
Bruno_Laturner 30 de out. de 2012
trodrigo, faça outro c:forEach com pessoa.telefone, ou se tiver um número fixo de telefones, pode usar pessoa.telefone[0], pessoa.telefone[1]…
kadu.m.lino 30 de out. de 2012
Apenas demonstrando o que o Bruno disse, ficaria assim:
<c:forEach items= " ${ pessoaList } " var= "pessoa" >
<tr>
<td> ${ pessoa . nome } </td>
<td> ${ pessoa . cpf } </td>
<c:forEach items= " ${ pessoa . telefones } " var= "telefone" >
<td> ${ telefone . numero } </td>
</c:forEach>
</tr>
</c:forEach>
trodrigo 30 de out. de 2012
Valeu pela resposta rapida…Só outra coisa…como deveria ser meu get e set?
eu tinha feito desta maneira
public void setTelefones ( HashSet < Telefone > hashSet ) {
this .telefones = hashSet ;
}
public Collection < Telefone > getTelefone () {
return ( List < Telefone > ) telefones ;
}
mas gera uma exceptin “Property ‘telefones’ not readable on type java.util.HashSet”
kadu.m.lino 30 de out. de 2012
Eu faria dessa maneira
public Collection < Telefone > getTelefones () {
if ( telefones == null ) {
telefones = new HashSet <> () ;
}
return telefones ;
}
public void setTelefoness ( Collection < Telefone > telefones ) {
this . telefones = new HashSet <> ( telefones );
}
trodrigo 30 de out. de 2012
Valeu galera, mas vou mudar o mapeamento da Classe Telefone, usar chave composta no Hiberbate já vi que um muito ruim…
trodrigo 30 de out. de 2012
Só pra avisar…eu consegui resolver!
O que vocês me passaram funcionou perfeitamente…mais uma vez obrigado!