Como passar parametro para um bean jsf

7 respostas
N

bom dia estou com uma grande dúvida…
tenho uma página jsp que chamará uma xhtml que está com jsf

<a href="painel/detalhesocorrencia.jsf?produto=477"></a>

minha página detalhesocorrencia.jsf deverá antes de mostrar os resultados executar um metodo do managerbean
mas como poderia passar o produto para o bean antes de vizualizar a página detalhesocorrencia.jsf ?

obrigado

7 Respostas

R

não pode criar um servlet? ou usar um que ja esteja criado (contanto que faça sentido)

F

Há várias maneiras de se passar um parâmetro. Na minha modesta visão, esta que vc propoe pela URL é a menos indicada para o JSF.

Uma maneira eficiente e prática é usando-se o:

<f:setPropertyActionListener target="#{meuMB.objetoSelecionado}" value="#{objetoIteracao}"/>

no atributo target vc informa o objeto do seu MB, e o value, o valor a ser atribuido ao objeto.

Outra maneira, é o uso do:

<f:param />

Você informa o value, que é o próprio valor que deseja passar, não se esqueça de preencher o name e o id para que se possa acessar do seu MB.

Espero ter ajudado.

N

obrigado pelas respostas.
bem, o que ocorre é que eu tenho um projeto jácriado com jsp servlets mas estou migrando para xhtml aos poucos,
só que preciso chamar da página pagina.jsp a páginafaces.xhtml do jsf, mão tenho que fazer uma consulta ao banco antes de exibir a página páginafaces.xhtml,
mas quando a página é exibida não da certo pq meus bean estão zerados. Como poderia parra para um metodo do bean um id de prouto, por exemplo, antes de a página ser exibida, para que exiba com meus objetos carregados?
obrigado

F

Entendi, neste caso então tem que usar o parâmetro na URL pelo que vi.

Você pode fazer isso no construtor do seu Mb. Obtenha o id, faça as buscas devidas e pronto!

L

Voce pode pegar esse parametro no seu construtor ou em um metodo anotado com @PostConstruct. ai dentro dele voce pega esse parametro e faz um find.

Espero ter ajudado.

N

Eu até entendi, sou não sei como poderia capturar isso no construtor, mas obrigado

A
Criado 9 de novembro de 2011
Ultima resposta 23 de nov. de 2015
Respostas 7
Participantes 5