Como passar parametro para um bean jsf

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

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

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.

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

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!

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.

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