Bom dia,
Eu peguei a apostila da GUJ de JSF
http://www.guj.com.br/java.artigo.158.1.guj
e conseguir fazer todos os passos, porém o modelo Agenda estava muito bagunçado, o que eu fiz… 
1º Passei tudo para o hibernate (Continuo funcionando beleza)
2ª Fiz um AgendaControle e retirei os métodos inserir e buscar
ai que surgiu o problema não funciona…
vo colocar o codigo de tudo antes de implementar o AgendaControle
Agenda
package br.com.g1ti.agenda.modelo;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.HibernateException;
import br.com.g1ti.agenda.dao.Dao;
import br.com.g1ti.agenda.dao.DaoFactory;
@Entity
@Table(name="pessoa")
public class Agenda {
@Id
private String nome;
private String endereco;
private String cidade;
private String telefone;
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public static final String FALHA = "failure";
public static final String SUCESSO = "success";
public String inserir() {
String resultado;
DaoFactory<Agenda> daoFactoryAgenda = new DaoFactory<Agenda>(
Agenda.class);
Dao<Agenda> agendaDao = daoFactoryAgenda.getDao();
try {
daoFactoryAgenda.beginTransaction();
agendaDao.adiciona(this);
daoFactoryAgenda.commit();
resultado = SUCESSO;
} catch (HibernateException e) {
resultado = FALHA;
}
daoFactoryAgenda.close();
return resultado;
}
public String buscar() {
String resultado;
DaoFactory<Agenda> daoFactoryAgenda = new DaoFactory<Agenda>(
Agenda.class);
Dao<Agenda> agendaDao = daoFactoryAgenda.getDao();
try {
Agenda rs = agendaDao.procura(this.getNome());
this.setNome(rs.getNome());
this.setEndereco(rs.getEndereco());
this.setCidade(rs.getCidade());
this.setTelefone(rs.getTelefone());
resultado = SUCESSO;
} catch (HibernateException e) {
resultado = FALHA;
}
return resultado;
}
}
faces-config
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<managed-bean>
<managed-bean-name>agendaControle</managed-bean-name>
<managed-bean-class>br.com.g1ti.agenda.controle.AgendaControle</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>agenda</managed-bean-name>
<managed-bean-class>br.com.g1ti.agenda.modelo.Agenda</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/buscar.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/sucesso_busca.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/falha_busca.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/inserir.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/sucesso_insercao.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/falha_insercao.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
é… acho que falei muito e não expliquei muito bem…
quero saber se seria melhor separar do Modelo os métodos de acesso ao banco, no caso inserir e buscar ou se eu posso deixar lá mesmo… e se não…
como eu implementaria o AgendaControle… ou algo do gênero…
Obrigado.