VRaptor (Acessar dados de um @Component na minha JSP)
12 respostas
IAX
Bom Dia à Todos,
Estou com uma dúvida no VRaptor (sou iniciante) e não consegui entender como fazer, é o seguinte, tenho um bean anotado como @Component e @SessionScoped e gostaria de acessar os atributos desse bean em uma JSP que possuo ${meuBean.atributo01} por exemplo. Porém não está funcionando não dá erro mas não aparece nada, estou com algum conceito errado? Para acessar valores na JSP sempre tenho que inserir os objetos no objeto Result do VRaptor?
Olá IAX. Tu tens que chamar os métodos do bean pela classe MeuBeanController, no bean tu usa o return, e no Controller tu usas o return ou resul. E o jsp deve ficar dentro de uma pasta com o mesmo nome do bean, dentro da pasta jsp, dentro da pasta WEB-INF.
IAX
Olá ressacaafu,
Primeiramente obrigado pela ajuda, mas acho que não fui muito claro. O funcionamento básico do VRaptor está bem claro pra mim, a dúvida é, preciso de algumas informações que não estão dentro do Controller da página, no caso está em um Componente do VRaptor, seria possível nessa JSP eu buscar essas informações ou não? Caso não, seria pq eu tenho sempre que utilizar o atributo Result do VRaptor para retornar valores para a página?
Espero ter sido mais claro.
Att,
IAX
ressacaafu
É possível acessar os atributos no JSP, mas tem que usar a classe BeanController com result ou return pra mandar esses dados pra JSP. Fui claro?
IAX
Olá,
Foi sim, é justamente isso que gostaria de saber, se obrigatoriamente tenho que utilizar o Result do VRaptor.
Obrigado!
ressacaafu
Disponha amigo.
Lucas_Cavalcanti
IAX, dá pra acessar o componente sessionScoped diretamente do JSP sim, desde que vc esteja usando o Spring ou o Guice, e o componente já esteja carregado…
se vc usar ${meuBean.teste} teoricamente funciona na JSP. Mas o componente precisa já ter sido usado em algum lugar.
IAX
Lucas,
É exatamente o que estou fazendo, com exceção de que o bean não é invocado em momento algum a não ser na JSP em questão, vou tentar invocá-lo antes assim como vc me sugeriu obrigado!
Att,
Isaque Xavier
Lucas_Cavalcanti
se você usa o bean só no jsp, como vc popula os valores nele?
Na teoria pra mim o valores serão populados quando o VRaptor chamar o métod get para acessar os atributos.
Obrigado!
Lucas_Cavalcanti
coloque o código que está dentro do if (user == null) dentro de um método void sem argumentos anotado com @PostConstruct.
isso força o VRaptor a inicializar a classe.
IAX
Lucas,
Fiz como sugeriu e não funcionou, na verdade o que estou achando estranho que é que nas duas abordagens os métodos simplesmente não são invocados pela JSP.