sou um iniciante em JSF, vou colocar a situação no exemplo abaixo
estou com uma questão, tenho uma pagina1.jsf com o managedbean Login.java e uma outra pagina2.jsf com o managedbean LoginX.java, ambas tem propriedades iguais usuario e senha, com seus getters e setters, eu gostaria que na pagina2.jsf no LoginX.java tenha o mesmo dado do usuario da Login.java, como faço isso?
eu to colocando essa situção nessa forma só que não é rsss é que fica fácil de entender o problema.
sou um iniciante em JSF, vou colocar a situação no exemplo abaixo
estou com uma questão, tenho uma pagina1.jsf com o managedbean Login.java e uma outra pagina2.jsf com o managedbean LoginX.java, ambas tem propriedades iguais usuario e senha, com seus getters e setters, eu gostaria que na pagina2.jsf no LoginX.java tenha o mesmo dado do usuario da Login.java, como faço isso?
eu to colocando essa situção nessa forma só que não é rsss é que fica fácil de entender o problema.
tu pode fazer binding entre as propriedades dos beans sem problemas, mesmo eles não sendo armazenados na session.
faz isto usando o faces-config.xml mesmo …
tem isto no último post do meu blog sobre JSF, la eu estou utilizando session, mas não é necessário isto …
Outra forma seria armazenar os dados em uma cookie e recuperar eles no outro MB
Olá, não sei se entendi direito a pergunta mas se você quer acessar de dentro de um método de um bean x, o estado (as propriedades) de um bean y, pode fazer algo assim:
No meu caso criei uma classe com um método estático
public class ManagedBean {
public static Object getContextInfo(String info) {
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
return application.createValueBinding(info).getValue(context);
}
}
o esquema do ubiratan eu ainda to tentando entender, se puder me ajudar eu aguadeço, mas o esquem do amigo ai funcionou numa boa, quero agora entender esse Binding, pq eu nunca usei ele.
Estou implementando um sistema em JSF e tambem tive este problema com relação a passagem de parâmetro no JSF.
Depois de pesquisar muito achei a página do BalusC que é uma das poucas que trata deste assunto de diversas formas diferentes. Dá uma olhada lá e veja qual é o caso que se encaixa melhor no que você estiver fazendo
Ué… Se ambas as classes têm atributos iguais, por que não usa o mesmo managed bean para ambas as páginas e mantém seu estado com o t:saveState?
Se ainda assim quiser fazer dessa maneira, você pode fazer o seguinte:
Use o t:saveState na página1 para o managedbean de login.java
Na página2 em vez de usar os atributos do managedbean de loginx.java continue com os de login.java e faça isso:
<h:commandButton action="#{loginx.action}" value="pronto">
<f:setPropertyActionListener value="login.atribute" target="loginx.atribute"/>
</h:commandButton>
Acho que isso resolve seu problema.
Pelo o que entendi você está em uma página que tem atributos mapeados para o Login.java e da um post para uma action do LoginX.java certo?
Se sim você pode injetar o Login dentro do LoginX e pegar os parâmetros normalmente. Ou pegar o Login através do FacesContext como alguns estão sugerindo.
ajuda de vcs foi perfeita, eu fiz o exemplo do toninho e deu certo, só que eu nunca usei o t:saveState que o ubiratan disse, assim fui tentar entender esse cara.
É que estou em um projeto que foi feito em JSF e ta pintando a necessiade de não usar sessão, em resumo ta um rolo danado, eu fiz um curso de jsf mas nunca tinha trabalhado, por isso que to apanhando rs.