Pessoal,
Estou começando a refazer uma aplicação que esta atualmente em struts.
Quero passar pra JSF.
Mais ate onde vi, os tutoriais que achei colocam uma “GOD CLASS” pra resolver as ações do JSF.
Eu quero muito bem separados meu bean, do meu business, e do meu Acesso a dados.
estruturei assim:
AlunoAction :
[code]package jsf.business;
import jsf.entity.AlunoEntity;
import jsf.sql.AlunoDB;
public class AlunoAction {
private String nome;
private String email;
public static final String INSERIDO = “sucess”;
public AlunoAction() { }
public String inserir() {
AlunoEntity aluno = new AlunoEntity();
aluno.setNome(nome);
aluno.setEmail(email);
AlunoDB.insert(aluno);
return INSERIDO;
}
}[/code]
AlunoEntity:
[code]package jsf.entity;
public class AlunoEntity {
private Integer idAluno;
private String nome;
private String email;
public AlunoEntity() { }
public void setIdAluno(Integer idAluno) {
this.idAluno = idAluno;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getIdAluno() {
return idAluno;
}
public String getNome() {
return nome;
}
public String getEmail() {
return email;
}
}[/code]
AlunoDB :
[code]package jsf.sql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Connection;
import jsf.entity.AlunoEntity;
public class AlunoDB {
public AlunoDB() { }
public static void insert(AlunoEntity alunoEntity){
PreparedStatement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
String sql = “insert into aluno(nome,email) values (?,?)”;
conn = DBControllerMysql.getInstance().getConnection();
stmt = conn.prepareStatement(sql);
System.out.println("alunoEntity.getNome(): " + alunoEntity.getNome());
System.out.println("alunoEntity.getEmail(): " + alunoEntity.getEmail());
stmt.setString(1,alunoEntity.getNome());
stmt.setString(2,alunoEntity.getEmail());
stmt.executeUpdate();
sql = null;//performance
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}finally {
DBControllerMysql.getInstance().closeAll(conn, rs, stmt);
}
}
}[/code]
Faces-config
[code]<?xml version="1.0" encoding="UTF-8"?>
/index.jsf.jsp sucess /inserir.jsf.jsp aluno jsf.business.AlunoAction session alunoEntity jsf.entity.AlunoEntity session [/code]Index.jsf.jsp
[code]<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<f:view>
<h:form>
Nome: <h:inputText id=“nome” value="#{alunoEntity.nome}"/>
E-mail: <h:inputText id=“email” value="#{alunoEntity.email}"/>
<h:commandButton value=“Enviar” action="#{aluno.inserir}"/>
<h:outputLink value="/nada.jsf">
<f:verbatim> Alberto </f:verbatim>
</h:outputLink>
</h:form>
[/code]Quando tento inserir usando esse index.jsf.jsp
dá erro pq o banco não aceita valores nulos
e alunoEntity.nome e alunoEntity.email estão indo nulos.
Desde já ja agradeço a ajuda.
Abraço