Controller com vraptor receber mais de 1 dao no construtor!

consigo fazer isso pessoal?

no meu controller de usuarios tenho o seguinte construtor

public UsuariosController(Result res, UsuarioDao dao,PerfilDao perfilDao)

que recebe os seguintes daos

@Component
public class UsuarioDao

@Component
public class PerfilDao

e o vraptor instancia o usuarioscontroller… nao passa por esse constutor que mostrei por primeiro ai
e so inicia a variavel global da classe “dao” mas a variavel “perfilDao” não é instanciada…
alguém me explica isso???

obrigado desde ja. tenham um ótimo final de semana!

vem nula ou dá erro?

deveria funcionar sem problemas

1º q nao passou pelo meu construtor,
2º q as outras 2 variaveis tao ok,
e meu perfildao vem nullo…

como vc está usando esse controller? acessando uma lógica pela url?

Tche, seguinte…
os metodos eu eu estava chamando esta funcionando perfeitamente. mas quando
adicinei o perfilDAO no construtor e então tudo continua funcionando…
mas quando vou usar a variavel global que o construtor do controller “preencheu” ela esta nula
so isso…
o usuarioDAO é preenchido e o perfilDao nao é preenchido!

variavel global? o.o
public static?

hehehe. static não!!!

global da classe… e private ainda!!!

se tá vindo preenchido no construtor e não fica na classe tem algo de errado aí… vc tá guardando a varíavel corretamente?

tipo:

this.perfilDao = perfilDao;

é a mesma forma que faço com o result…
recebo do construtor e passo pra variavel…
mas resolvi fazendo uma variavel local…
e pegando a session do usuarioDao…
nãoo dah pra se dizer que tah errado/feio essa forma…
vo deixar assim…
dai cada Controller fica resonsavel apenas por um DAO…
que tu acha?
valeu

cara, pro vraptor não faz diferença se vc recebe 1, 2 ou 40 daos no construtor…

não deveria dar erro… e mais ainda não deveria vir nulo (a menos que vc tem um componentFactory que retorna nulo)… acho que vc não estava guardando o outro dao…

tenta voltar pra receber os daos no construtor, e posta aqui o construtor do controller plz

ok, vo testar quando chegar em casa…
dai posto o codigo
abraços e vlw pela ajuda!

tudo certo…
minha super classe do usuarioController chamava um metodo qeu usava a variavel qeu nao tinha inicializado ainda!!!
coisa de amador mesmo…
valeu pela ajuda!

http://lucas.cavalcanti.me/2011/08/12/java-puzzle-protected-method-no-construtor/

não tão amador assim :wink:

poise… bem parecido mesmo…
vale a experiencia!!!
valeu