Consulta com Hibernate na JSP não dá erro mais tbm não retorna dados

1 resposta
diogoprosoft

Galera estava dando um erro na minha consulta mudei no meu DAO o comando “load” pelo “get”, não deu mais erro, porém não está retornando o resultado da consulta para o form, e agora o que aconteceu!!!

DAO

public Object buscar(Class clazz, Long pk) throws Exception  
     {  
         sessao = HibernateFactory.getSession();  
         transacao = sessao.beginTransaction();  
         Usuario objt = (Usuario) sessao.get(clazz,pk);  
         transacao.commit();  
         sessao.flush();  
         sessao.close();  
         return objt;  
     }

Action

public ActionForward buscar(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {                                                                         
        
        HttpSession session = request.getSession();
        
        UsuarioForm usuarioForm = (UsuarioForm) form;
        Usuario usuario = new Usuario();
                
        PersistenciaDAO persistencia = new PersistenciaDAO();     
        
        usuario = (Usuario) persistencia.buscar(Usuario.class, usuarioForm.getIdusuario());                                        
        
        BeanUtils.copyProperties(usuario, usuarioForm);
        
        return mapping.findForward(SUCCESS);        
                
    }

JSP

<html:form action="usuario" focus="idusuario">            
            Id:<html:text property="idusuario"/>
            Nome:<html:text property="nome"/>
            Senha:<html:password property="senha"/>            
            <html:submit property="method" ><bean:message key="button.salvar" /></html:submit>
            <html:submit property="method" ><bean:message key="button.deletar" /></html:submit>
            <html:submit property="method" ><bean:message key="button.buscar" /></html:submit>
        </html:form>

Struts-config

<action input="/usuario.jsp" name="UsuarioForm" parameter="method" path="/usuario" scope="session" type="usuario.action.UsuarioAction">
            <forward name="success" path="/usuario.jsp"/>

Aguardo a ajuda devcs :slight_smile:

1 Resposta

M

Creio que a sua chamada para a consulta possa estar com algum problema.
Fiz aqui e funcionou perfeitamente:

[/code]
//DAO:
package dao;

import java.util.List;

import modelo.Aluno;
import modelo.Professor;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.AnnotationConfiguration;

public class DaoAluno {
protected SessionFactory fabrica;

public DaoAluno()throws Exception{
	AnnotationConfiguration configuration=new AnnotationConfiguration();
	configuration.configure("hibernate.cfg.xml");
	fabrica=configuration.buildSessionFactory();
}
public Aluno consultar(int mat)throws Exception{

Aluno al;

Session sessao =fabrica.openSession();

Transaction transacao = sessao.beginTransaction();

al = (Aluno)sessao.get(modelo.Aluno.class, mat);

transacao.commit();

sessao.flush();

sessao.close();

return al;

}

}

// operação para consultar

package operacao;

import java.io.IOException;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import dao.DaoAluno;

import modelo.Aluno;

public class OperacaoConsultarAluno extends OperacaoAbstrata {

public void executar(HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	boolean result = false;
	String mat = request.getParameter("txtMatricula");
	//int mat1=(Integer.parseInt(mat));
	Aluno a = new Aluno();
	a.setMatricula(Integer.parseInt(mat));
	try {
		DaoAluno dao = new DaoAluno();
		
		//Aluno novoaluno=new Aluno();
		
		a = dao.consultar(a.getMatricula());
		//Aluno novoaluno1 = dao.consultar(mat);
	} catch (Exception ex) {
		ex.printStackTrace();
	}
	HttpSession sessao = request.getSession();
	sessao.setAttribute("aluno", a);
	//redirecionar(request,response,"/WEB-INF/jsp/TelaAluno.jsp");
	RequestDispatcher rd =request.getRequestDispatcher("/WEB-INF/jsp/TelaAluno.jsp"); //caminho da tela  
    rd.forward(request, response); 
    
  
			
}

}

Criado 12 de junho de 2008
Ultima resposta 3 de dez. de 2010
Respostas 1
Participantes 2