Bom gente, já revirei o que eu pude com o Google e não achei uma resposta que pudesse me ajudar, vou tentar descrever o melhor possível a situação.
eu tenho um ManagedBean, esse aqui
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="usuario")
@SessionScoped
public class InfoUsu {
private int logou;
public InfoUsu(){
System.out.println("Bean");// isso é só para eu saber quando o bean for iniciado.
}
public final int getLogou() {
return logou;
}
public final void setLogou(int logou) {
this.logou = logou;
}
}
ele é simples, mas pra esse teste um valor é o suficiente, e ele é iniciado pelo index na tag bory,
<h:body onload="#{usuario}">
e tenho uma outra classe que trata as requisições RestFul (estou estudando AngularJS no momento)
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/logiinn")
public class Angu {
@GET
@Path("/pegarai")
@Produces(MediaType.APPLICATION_JSON)
public List<Objeto> Retorna(){
List<Objeto> lista = new ArrayList<Objeto>();
lista.add(new Objeto(1,"leandro"));
lista.add(new Objeto(2,"leandr"));
lista.add(new Objeto(3,"leanro"));
lista.add(new Objeto(4,"lendro"));
lista.add(new Objeto(5,"eandro"));
lista.add(new Objeto(6,"lndro"));
lista.add(new Objeto(7,"leano"));
lista.add(new Objeto(8,"landr"));
lista.add(new Objeto(9,"eadr"));
return lista;
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public String Login(LogJson log){
Logando lo = new Logando();//classe que testa se usuário e senha estão corretos
boolean logo = lo.loga(log.getUsuario(), log.getSenha());// se o login estiver correto ele devolve true
if(logo == true){
//AQUI é onde deveria chamar a sessão do Bean
return "1";
}else{
return "0";
}
}
}
eu quero, que quando eu mande a partir da pagina uma requisição @POST usando o AngularJS, eu consiga obter a sessão do Bean para que eu possa mudar o valor do int que tem nele, assim quando o usuário for acessar uma outra pagina o filtro que também é uma classe possa acessar o Bean e saber se esse usuário fez ou não o login de acesso.
encontrei varias formas de se pegar essa sessão, mas todas elas como um primeiro passo manda obter o FacesContext, e é isso que eu não consigo, sempre que uso o código,
[/code]
FacesContext facesContext = FacesContext.getCurrentInstance();
[code]
eu recebo null como resposta, e por isso o resto do código não funciona sempre estoura um erro.
alguém sabe como obter o FacesContext a partir de qualquer outro classe? e eu realmente preciso pegar essa sessão do bean para poder mexer nos valores dele?
qualquer coisa que não tenho ficado muito bem claro, me fale que eu tentarei esplicamelhor.
Obrigado a todos pela atenção.