Boa noite a todos. Estou implementando um sistema de login(primeira vez que faço um). Estou seguindo o modelo do site do primefaces.org. Gostaria de implementa-lo com dados vindos do banco de dados. Estou usando mysql e ja tem um banco criado. Alguem poderia me mostrar a sequencia do que tenho q fazer, por favor?
Esta é minha pagina de login:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form>
<h:outputLink value="javascript:void(0)" onclick="PF('dlg').show();" title="login">
<p:graphicImage library="images" name="login.png" />
</h:outputLink>
<p:growl id="growl" sticky="true" showDetail="true" life="3000" />
<p:dialog header="Login" widgetVar="dlg" resizable="false">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="username" value="Username:" />
<p:inputText id="username" value="#{userLoginView.username}" required="true" label="username" />
<h:outputLabel for="password" value="Password:" />
<p:password id="password" value="#{userLoginView.password}" required="true" label="password" />
<f:facet name="footer">
<p:commandButton value="Login" update="growl" actionListener="#{userLoginView.login}"
oncomplete="handleLoginRequest(xhr, status, args)" />
</f:facet>
</h:panelGrid>
</p:dialog>
</h:form>
<script type="text/javascript">
function handleLoginRequest(xhr, status, args) {
if(args.validationFailed || !args.loggedIn) {
PF('dlg').jq.effect("shake", {times:5}, 100);
}
else {
PF('dlg').hide();
$('#loginLink').fadeOut();
}
}
</script>
</h:body>
</html>
Esta é a classe UsuariosBean:
[code]
@ManagedBean
public class UsuariosBean {
private Usuarios usuarios = new Usuarios();
public Usuarios getUsuarios() {
return usuarios;
}
public void gravar() {
System.out.println("Gravando autor " + this.usuarios.getNome());
new DAO<Usuarios>(Usuarios.class).adiciona(this.usuarios);
}
}
Esta é a classe JPAUtil:
[code]
public class JPAUtil {
private static EntityManagerFactory emf = Persistence
.createEntityManagerFactory("condominio");
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public void close(EntityManager em) {
em.close();
}
}
E esta a classe DAO:
public class DAO<T> {
private final Class<T> classe;
public DAO(Class<T> classe) {
this.classe = classe;
}
public void adiciona(T t) {
// consegue a entity manager
EntityManager em = new JPAUtil().getEntityManager();
// abre transacao
em.getTransaction().begin();
// persiste o objeto
em.persist(t);
// commita a transacao
em.getTransaction().commit();
// fecha a entity manager
em.close();
}
public void remove(T t) {
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
em.remove(em.merge(t));
em.getTransaction().commit();
em.close();
}
public void atualiza(T t) {
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
em.merge(t);
em.getTransaction().commit();
em.close();
}
public List<T> listaTodos() {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).getResultList();
em.close();
return lista;
}
public T buscaPorId(Integer usuariosId) {
EntityManager em = new JPAUtil().getEntityManager();
T instancia = em.find(classe,usuariosId);
em.close();
return instancia;
}
public int contaTodos() {
EntityManager em = new JPAUtil().getEntityManager();
long result = (Long) em.createQuery("select count(n) from usuarios n")
.getSingleResult();
em.close();
return (int) result;
}
public List<T> listaTodosPaginada(int firstResult, int maxResults) {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).setFirstResult(firstResult)
.setMaxResults(maxResults).getResultList();
em.close();
return lista;
}
}
Esta é a classe que recebe os dados do formulario:
@ManagedBean
public class UserLoginView {
Session session = null;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void login(ActionEvent event) throws IOException {
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage message = null;
boolean loggedIn = false;
if(username != null && username.equals("admin") && password != null && password.equals("admin")) {
loggedIn = true;
message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", username);
FacesContext.getCurrentInstance().getExternalContext().redirect("painel.xhtml");
} else {
loggedIn = false;
message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Loggin Error", "Invalid credentials");
}
FacesContext.getCurrentInstance().addMessage(null, message);
context.addCallbackParam("loggedIn", loggedIn);
}
}
E agora, pessoal, o que faço? pra onde vou??