Ola a todos,
Aqui na empresa estamos fazendo alguns testes, criando uma pequena aplicação utilizando JSF, Spring e iBatis, porem não conseguimos descobrir a solução deste erro:
Segue o applicationContext.xml:
DAO:
public interface UFDAO {
public UF get(int id);
public void insert(UF uf);
public void delete(int id);
public void update(UF uf);
public List getAll();
}
Implementação do DAO(O BaseDAO somente estende SqlMapClientTemplate):
public class UFDAOImpl extends BaseDAO implements UFDAO {
public UFDAOImpl(){
}
public UF get(int id) {
return (UF) queryForObject("uf.get", id);
}
public void insert(UF uf) {
insert("uf.insert", uf);
}
public void delete(int id) {
delete("uf.delete", id);
}
public void update(UF uf) {
update("uf.update", uf);
}
public List getAll() {
return queryForList("uf.getAll", null);
}
public int getNexId() {
try {
return ((Integer) queryForObject("uf.getLastId", null)) + 1;
} catch (NullPointerException e) {
return 1;
}
}
}
O Managed Bean:
public class CadastroUF{
private UF uf;
private UFDAO ufDAO;
public CadastroUF() {
uf = new UF();
ufDAO = new UFDAOImpl();
}
public UF getUf(){
return uf;
}
public void setUf(UF uf){
this.uf = uf;
}
public String insert(){
ufDAO.insert(uf);
uf = new UF();
return "";
}
public String delete(){
ufDAO.delete(uf.getId());
uf = new UF();
return "";
}
public String update(){
ufDAO.update(uf);
return "";
}
public UF find(){
return ufDAO.get(uf.getId());
}
public List all(){
return ufDAO.getAll();
}
}
Essa linha de comando é indispensável, pois permite que se possa referenciar os beans do spring no faces-config.xml da seguinte forma:
...
<managed-bean>
...
<managed-property>
<property-name>CadastroUF</property-name>
<property-class>caminhoclasse.CadastroUF</property-class>
<value>#{UFDAOImpl}</value> //bean que está no applicationContext.xml
</managed-property>
</managed-bean>
...
Esse código só pode ser usado a partir de JSF 1.2 e Spring a partir de 2.1