JSTL e Hibernate (JSP) [RESOLVIDO]

Primeiramente me apresentando, meu nome é Carlos porém sou conhecido por Kaah ou Kaahxd :smiley:
Sou nome aqui no fórum, pesquisei antes de abrir o tópico porém não obtive resultados satisfatórios e espero que alguém possa me ajudar. Bem vamos lá então:

Estava aprendendo a usar o hibernate e até então tudo tranquilo, foi quando resolvi testar seu funcionamento na web. Então descobri que com o uso de scriptlets que não é o adequado, logo pensei, se funciona com scriptlets funcionará com a JSTL e EL … Bem não foi bem isso que aconteceu. Creio que o erro seja pela necessidade do DAO receber em seu construtor o EntityManager instanciando uma JPAUtil().getEntituManager();, porém não sei como resolver. Vou postar o código da aplicação teste para vocês poderem me auxiliar.

ContaDAO

[code]
package br.com.dao;

import java.util.List;

import javax.persistence.EntityManager;

import br.com.modelo.Conta;

public class ContaDAO {
private final DAO dao;

public ContaDAO(EntityManager em) {
	dao = new DAO<Conta>(em, Conta.class);
}

public void adicona(Conta t) {
	dao.adiciona(t);
}

public void remove(Conta t) {
	dao.remove(t);
}

public Conta busca(Integer id) {
	return dao.busca(id);
}

public List<Conta> lista() {
	return dao.lista();
}

}[/code]

JPAUtil

[code]
package br.com.infra;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {
private static EntityManagerFactory entityManagerFactory = Persistence
.createEntityManagerFactory(“controlefinancas”);

public EntityManager getEntityManager() {
	return entityManagerFactory.createEntityManager();
}

}[/code]

ListaElegante.jsp

[code]
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here
${conta.titular}
[/code] [b] E por fim o meu não tão querido erro.[/b]
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /listaElegante.jsp(11,1) The value for the useBean class attribute br.com.dao.ContaDAO is invalid.
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
	org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1221)
	org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1182)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
	org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	org.apache.jasper.compiler.Generator.generate(Generator.java:3474)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:249)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.12 logs.

Espero que possam me ajudar. Até mais!

Benvindo ao Guj.
Bom, primeiro, você está errando ao usar o conceito de javaBean, pois, o único construtor da tua classe ContaDAO necessita de argumento.
Um javaBean exige que, caso haja um construtor com argumento, você precisa declarar outro sem nenhum argumento, o que acabaria por gerar algo assim

public ContaDAO(){}
public ContaDAO(EntityManager em) {  
        dao = new DAO<Conta>(em, Conta.class);  
    } 

Aí você pergunta: "Ok, mas como eu faço para ter uma instância de JPAUtil?
Simples, trasforme o método e os atributos de JPAUtil em static e pronto.

public class JPAUtil {  
    private static EntityManagerFactory entityManagerFactory = Persistence  
            .createEntityManagerFactory("controlefinancas");  
  
    public static EntityManager getEntityManager() {  
        return entityManagerFactory.createEntityManager();  
    }  
}  

E no construtor sem argumentos

public ContaDAO(){
 dao = new DAO
(JPAUtil.getEntityManager(), Conta.class);
}

drsmachado Muito obrigado! Funcionou perfeitamente aqui.