FernandoFranzini:
Segue umas dicas...
1) Antes de usar JSF, leia um livro ou um tutorial que vc vai resolver questões básicas como esta de navegação.
<to-view-id>br.com.meuProjeto.dao.CadastroDao.java</to-view-id> Não se manda para a arquivo java...aqui vc tem que colocar a pagina JSF.
2) Não se abre conexão no ação do botão....imagina esse sistema web com 500 pessoas fazendo isso ao mesmo tempo? usamos a estrategia de pool conhecido como DataSource.
3) Não se joga exception no metod da ação do bean - public void Salvar() throws SQLException { Oque o JSF vai fazer com isso?
Vc tem tratar os erros das operações dentro do metodo e gerar uma mensagem de erro apropriada na pagina JSF se acontecer algo de errado.
4) Vc fez muitas perguntas ao mesmo tempo...seria interessante vc criar um post para cada pergunta.
Nossa Fernando desculpa ai por essas mancadas, que erros absurdos, mas tinha visto a pouco tempo sobre Managed Bean e talz, mas agora configurei corretamente e no lugar de mapear uma classe mapeei uma página jsf por testes e funcionou, vi também que preciso de mais organização, meus codigos estavam muito juntos e isso me atrapalhava também. Uma ultima observação, no meu pacote model tem todos os getters e setters, no pacote dao a inserção no banco, no Managed Beanas ações que a página irá realizar, aprendi que a pagina só se relaciona com o MAnaged Bean(certo?) e o MB lida com o resto da operação.
Ultima pergunta, para conseguir gravar eu extendi minha classe model para classe MB, para conseguir fazer os getters e setters, está corretto, ou não, se não qual a melhor forma?
segue o meu código arrumado:
Meu Managed Bean:
package br.com.rapha.mb;
import java.sql.SQLException;
import br.com.rapha.dao.CadClienteDao;
import br.com.rapha.model.CadClienteModel;
public class CadClienteMB extends CadClienteModel {
public String inserir() throws SQLException, ClassNotFoundException {
CadClienteDao dao = new CadClienteDao();
dao.inserir(getNome(), getTelefone(), getEndereco(), getRg());
return null;
}
}
Meu Model:
package br.com.rapha.model;//aqui ficam apenas os getters e setters
import java.io.Serializable;
import java.sql.SQLException;
import br.com.rapha.dao.CadClienteDao;
public class CadClienteModel implements Serializable {
private String nome;
private String telefone;
private String endereco;
private String rg;
Integer id;
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 String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
}
E a DAO:
package br.com.rapha.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.rapha.connection.Conexao;
public class CadClienteDao {
public String inserir(String nome, String telefone, String endereco, String rg) throws SQLException, ClassNotFoundException {
String sql = "insert into cad_usuario(nome,telefone,endereco,rg) values(?,?,?,?)";
Connection getcon = new Conexao().getcon();
PreparedStatement stmt = getcon.prepareStatement(sql);
stmt.setString(1, nome);
stmt.setString(2, telefone);
stmt.setString(3, endereco);
stmt.setString(4, rg);
stmt.execute();
stmt.close();
getcon.close();
return null;
}
}
E o Faces-Config.xml arrumado:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<managed-bean>
<managed-bean-name>clienteMB</managed-bean-name>
<managed-bean-class>br.com.rapha.mb.CadClienteMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>