package br.gera.Mbean;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import br.gera.Dao.PerguntaDao;
import br.gera.Dao.impl.PerguntaDaoImpl;
import br.gera.dominio.Pergunta;
@ManagedBean(name = "perguntaMBean")
@SessionScoped
public class PerguntaMBean {
private Pergunta pergunta;
private DataModel<Pergunta> perguntas;
public DataModel<Pergunta> getListarPegunta() {
List<Pergunta> lista = new PerguntaDaoImpl().buscarTodos();
perguntas = new ListDataModel<Pergunta>(lista);
return perguntas;
}
public Pergunta getPergunta() {
if(pergunta == null)
pergunta = new Pergunta();
return pergunta;
}
public void setPergunta(Pergunta pergunta) {
this.pergunta = pergunta;
}
public String prepararAddPergunta() {
pergunta = new Pergunta();
return "form";
}
public String prepararAlterarPergunta() {
pergunta = (Pergunta) (perguntas.getRowData());
return "form";
}
public String Excluir() {
Pergunta perguntemp = (Pergunta) (perguntas.getRowData());
PerguntaDao dao = new PerguntaDaoImpl();
dao.remover(perguntemp);
return "index";
}
public String Salvar() {
PerguntaDao dao = new PerguntaDaoImpl();
dao.salvar(pergunta);
return "index";
}
public String Alterar() {
PerguntaDao dao = new PerguntaDaoImpl();
dao.update(pergunta);
return "index";
}
}
Classe PerguntaDaoImpl
package br.gera.Dao.impl;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.gera.Dao.PerguntaDao;
import br.gera.dominio.Pergunta;
import br.gera.util.HibernateUtil;
public class PerguntaDaoImpl implements PerguntaDao {
/* (non-Javadoc)
* @see br.gera.Dao.PerguntaDao#buscarTodos()
*/
@SuppressWarnings("unchecked")
public List<Pergunta> buscarTodos() {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
List<Pergunta> lista = session.createQuery("from pergunta").list();
t.commit();
return lista ;
}
// @SuppressWarnings("unchecked")
// public List<Pergunta> buscarPorId() {
// Session session = HibernateUtil.getSessionFactory().openSession();
// return (List<Pergunta>) session.load(Pergunta.class, session);
//
// }
public void salvar(Pergunta pergunta) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
session.save(pergunta);
t.commit();
}
public void remover(Pergunta pergunta) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
session.delete(pergunta);
t.commit();
}
public void update(Pergunta pergunta) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
session.update(pergunta);
t.commit();
}
}
Classe PerguntaDao
package br.gera.Dao;
import java.util.List;
import br.gera.dominio.Pergunta;
public interface PerguntaDao {
List<Pergunta> buscarTodos();
// List<Pergunta> buscarPorId();
void salvar(Pergunta pergunta);
void remover(Pergunta pergunta);
void update(Pergunta pergunta);
}
<!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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:form>
Descrição: <h:inputText id="descricao"
value="#{ perguntaMBean.pergunta.descricao }" />
<br />
Alternativa: <h:inputText id="alternativa"
value="#{ perguntaMBean.pergunta.alternativa }" />
<br />
Resposta: <h:inputText id="resposta"
value="#{ perguntaMBean.pergunta.resposta }" />
<br />
<h:inputHidden value="#{ perguntaMBean.pergunta.id }" />
<h:commandButton value="Salvar" action="#{ perguntaMBean.Salvar() }" />
<a href="lista.jsf">Listar</a>
</h:form>
</html>
<!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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<a href="form.jsf">Cadastrar nova pergunta</a>
<br />
<h:form>
<h:dataTable rows="20" border="2" value="#{ perguntaMBean.pergunta}" var="e" style="width : 744px; height : 52px;">
<h:column>
<f:facet name="header">id</f:facet>
<h:outputText value="#{ e.id }" />
</h:column>
<h:column>
<f:facet name="header">descriçao</f:facet>
<h:outputText value="#{ e.descricao }" />
</h:column>
<h:column>
<f:facet name="header">alternativa</f:facet>
<h:outputText value="#{ e.alternativa }" />
</h:column>
<h:column>
<f:facet name="header">resposta</f:facet>
<h:outputText value="#{ e.resposta }" />
</h:column>
<h:column>
<h:commandButton value="Editar" action="#{ perguntaMBean.Alterar() }" />
</h:column>
<h:column>
<h:commandButton value="Remover" action="#{ perguntaMBean.Excluir() }" />
</h:column>
</h:dataTable>
</h:form>
</html>