Fala pessoal, blz?
Minha dúvida parece ser bem simples, pelo menos quando estou desenvolvendo desktop é.
Vamos lá. preciso fazer um consulta a partir do login, meu login esta certinho e direciono para a página que quero de forma correta.
Porém preciso a partir desse login direcionar uma consulta. O Sistema será usado para consulta de notas de aluno. Quando o aluno fizer o login abre uma tela com suas notas, simples não. hehehehehe não estou conseguindo. vamos lá.
segue o XHTML
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:body>
<ui:composition template="/_template.xhtml">
<ui:define name="corpo">
<div id="blocoConteudo">
<div class="container">
<h2>Login no Sistema</h2>
<h:form id="formLogin">
<h:panelGrid columns="2" styleClass="Campos">
<h:outputLabel value = "Login: " for = "login"/>
<h:inputText id = "login" value ="#{alunoBean.aluno.login}"/>
<h:outputLabel value = "Senha: " for = "senha"/>
<h:inputSecret id = "senha" value ="#{alunoBean.aluno.senha}"/>
<f:ajax render = ":formLogin" execute = "@form">
<h:commandButton value="Efetuar Login" action ="#{alunoBean.efetuaLogin}"/>
</f:ajax>
</h:panelGrid>
</h:form>
</div>
</div>
</ui:define>
</ui:composition>
</h:body>
</html>
blz… até aí maravilha…
sigo o login pelo meu ManagedBean que esta uma maravilha também fazendo seu serviço direitinho.
view plaincopy to clipboardprint?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.admescolarweb.mb;
import br.com.admescolarweb.dao.AlunoDAO;
import br.com.admescolarweb.dao.DAO;
import br.com.admescolarweb.modelo.Atafaluno;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
/**
*
* @author Luciano
*/
@SessionScoped
@ManagedBean
public class AlunoBean {
private Atafaluno aluno = new Atafaluno();
private List<Atafaluno> alunos;
public Atafaluno getAluno() {
return aluno;
}
public void setAluno(Atafaluno aluno) {
this.aluno = aluno;
}
public List<Atafaluno> getAlunos() {
if (alunos == null){
alunos = new DAO<Atafaluno>(Atafaluno.class).listaTodos();
}
return alunos;
}
public void setAlunos(List<Atafaluno> alunos) {
this.alunos = alunos;
}
public Atafaluno busca(Long id){
DAO<Atafaluno> dao = new DAO<Atafaluno>(Atafaluno.class);
return dao.buscaPorId(id);
}
public String efetuaLogin(){
AlunoDAO dao = new AlunoDAO();
boolean loginValido = dao.existe(this.aluno);
if (loginValido){
return "rel_Aluno?faces-redirect=true";
} else {
return "login";
}
}
}
ok, tudo certo. O metodo efetuaLogin esta ok, vou mostrar meu AlunoDAO.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.admescolarweb.dao;
import br.com.admescolarweb.modelo.Atafaluno;
import javax.persistence.EntityManager;
import javax.persistence.Query;
/**
*
* @author Luciano
*/
public class AlunoDAO {
public boolean existe(Atafaluno aluno){
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
Query query = em.createQuery("from Atafaluno a where a.login = :pLogin and a.senha = :pSenha");
query.setParameter("pLogin", aluno.getLogin());
query.setParameter("pSenha", aluno.getSenha());
boolean encontrado = !query.getResultList().isEmpty();
em.getTransaction().commit();
em.close();
return encontrado;
}
}
o login foi feito e redirecionado para o XHTML - rel_Aluno
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:body>
<ui:composition template="/_template.xhtml">
<ui:define name="corpo">
<div id="blocoConteudo">
<div class="container">
<div id = "usuarioLogado">
Olá: - <h:outputText value = "#{alunoBean.aluno.login}"/>
</div>
<h2>Dados do Aluno</h2>
<h:form>
<h:dataTable value="#{alunoBean.alunos}" var="a" styleClass="dados" rowClasses="impar,par">
<h:column>
<f:facet name="header">
<h:outputText value="Nome: "/>
</f:facet>
#{a.nome}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Disciplina: "/>
</f:facet>
#{a.d1}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="1º Bimestre: "/>
</f:facet>
#{a.n1b1}
</h:column>
</h:dataTable>
</h:form>
</div>
</div>
</ui:define>
</ui:composition>
</h:body>
</html>
OK, até o nome do usuário aparece como logado… Olá: - <h:outputText value = “#{loginBean.aluno.login}”/>
mas dessa forma <h:dataTable value="#{alunoBean.alunos}" var=“a” styleClass=“dados” rowClasses=“impar,par”>
estou preenchendo a tabela com uma lista de alunos e funcionou, porem preciso preencher com um aluno único.
retornado a partir do login.
para informação: o login e senha são campos da mesma tabela que possuem as informações dos alunos, o banco possui uma única tabela.
espero ter conseguido passar minha dificuldade, no aguardo…
grande abraço a todos