[quote=FernandoFranzini]Segue umas dicas…
- 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.
- 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.
- 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.
- Vc fez muitas perguntas ao mesmo tempo…seria interessante vc criar um post para cada pergunta.[/quote]
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:
[code]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;
}
}
[/code]
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:
[code]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;
}
}
[/code]
E o Faces-Config.xml arrumado:[code]<?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>
[/code]