Hibernate x JSP :(

3 respostas
gledson85

Dúvida simples, mas estou até agora pesquisando e não consigo:

O problema é o seguinte, criei a classe Noticia com as anotações:

package teste;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Noticias {
	private Long id;
	@Column(name = "titulo", nullable = true, length = 48)
	private String titulo;
	@Column(name = "conteudo", nullable = true, length = 2048)
	private String conteudo;

	@Id
	@GeneratedValue
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getConteudo() {
		return conteudo;
	}

	public void setConteudo(String conteudo) {
		this.conteudo = conteudo;
	}
}
A classe NoticiasDAO:
package teste;

import java.util.List;
import org.hibernate.Session;

public class NoticiasDAO {
	private Session session;

	public NoticiasDAO(Session session) {
		this.session = session;
	}

	public void salva(Noticias n) {
		this.session.save(n);
	}

	public void remove(Noticias n) {
		this.session.delete(n);
	}

	public Noticias procura(Long id) {
		return (Noticias) this.session.load(Noticias.class, id);
	}

	public void atualiza(Noticias n) {
		this.session.update(n);
	}

	public List<Noticias> listaTudo() {
		return this.session.createCriteria(Noticias.class).list();
	}

	public List<Noticias> pagina(int inicio, int quantia) {
		return this.session.createCriteria(Noticias.class).setMaxResults(quantia).setFirstResult(inicio).list();
	}

	public List<Noticias> listaAPartirDoterceiro() {
		return this.session.createQuery("from br.com.testes.hibernate.Noticias where " + "id>2").list();
	}
}
A classe HibernateUtil
package teste;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
	public static SessionFactory factory;
	static {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Noticias.class);
		factory = cfg.buildSessionFactory();
	}

	public Session getSession() {
		return factory.openSession();

	}
}

Agora vem minha duvida: O que eu preciso colocar no meu JSP para conseguir acessar os dados do banco Noticias? Pela taglib jsp:useBean não dá certo...
Acredito que esteja faltando algo, quem puder me ajudar agradeço muito pois não aguento mais, vou dormir e até amanhã cedo.

3 Respostas

_Renatu

Ola

O ideal é que voce faça a requisição para um servlet, esse servlet acessa as classes que acessam o banco de dados, e retornam eles através da requisicão.

Exemplo:

Um servlet ultimasNoticiasServlet instancia a classe NoticiasDAO, pega as ultimas notícias, coloca elas no request
request.setAttribute(“ultimasnoticias”, listadenoticias);

e aí você envia essa requisição para algum jsp:
request.getRequestDispatcher(“noticias.jsp”).forward(request, response);

 no jsp voce consegue acessar através de EL, ou de taglibs:

<c:forEach var=“noticia” items=“ultimasnoticias”>

${noticia.titulo}

</c:forEach>

Fiz tudo de cabeça, pode ser que tenha alguma digitação errada ou algo do tipo.
Mas a idéia geral é essa.

gledson85

Não consegui, estou lendo uns tópicos aqui sobre o assunto mas está difícil cair a ficha aqui.

G

Procura por displayTag no google…fica bem facil usando elas, e a ideia eh a mesma que o renatu falou ae em cima…
Ex:
display:table
<display:column bla bla bla bla> </display:column>
</display:table>

Abraço!!!

Criado 16 de novembro de 2007
Ultima resposta 17 de nov. de 2007
Respostas 3
Participantes 3