Colocar objeto populado dentro de uma session

Boa tarde amigos,

Estou tentando colocar um objeto populado dentro de uma session. Uso Struts 1.3.8. Com request.setAttribute(“clienteForm”, clienteVO), funciona mas se eu tentar colocar este objeto dentro de ums session não consigo, a session fica vazia.

ClienteAction:

	public ActionForward detalhesCliente(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		System.out.println("*** ClienteAction: detalhesCliente ***");
		
		ClienteDAO clienteDAO = new ClienteDAO();
		ClienteVO clienteVO = new ClienteVO();
		ClienteVO clienteForm = (ClienteVO) form;
						
		String idCliente = request.getParameter("id");
		String opcao = request.getParameter("opcao");
		clienteForm.setOpcao(opcao);
		
		// Popula o VO de estados para preencher a combo estado no cadastro de cliente
		List <EstadoVO> estados = clienteDAO.listaEstados();
		request.getSession().setAttribute("lEstado", estados);
						
		// Para detalhes do cliente
		if (idCliente != null) {
			
			clienteVO = clienteDAO.detalhesCliente(idCliente);
			//request.setAttribute("clienteForm", clienteVO); --> DESTA FORMA FUNCIONA
			
			HttpSession session = request.getSession();
			session.setAttribute("clienteForm", clienteVO); --> COM SESSION NÃO
			return mapping.findForward(ConstantsUtil.FWD_SUCESSO);
		}
			
		request.setAttribute("clienteForm", clienteVO);
		request.setAttribute("opcao", clienteForm.getOpcao());
		return mapping.findForward(ConstantsUtil.FWD_SUCESSO);
	}

O que pode ser amigos??

Vlw…

Verifique se quando tu ta recuperando, você está quecuperando do local correto :roll:

Acho que sim, mas não endenti muito bem… Onde deveria recuperar o objeto polulado e coloca-lo dentro de uma session ?

O método do DAO detalhesCliente é este:

	// Detalhes do cliente
	public ClienteVO detalhesCliente(String idCliente) throws Exception {

		try	{
			String queryDetalhes =	"SELECT C.*, "+ 
										"CE.ID, "+
										"CE.COD_CLIENTE, "+
										"CE.ENDERECO, "+
										"CE.BAIRRO, "+
										"CE.CIDADE, "+
										"E.NOME AS UF, "+
										"CE.REFERENCIA, "+
										"CE.OBS, "+
										"CC.* "+
										"FROM "+
											"TBL_CLIENTE C, "+
											"TBL_CLIENTE_ENDERECO CE, "+
											"TBL_CLIENTE_CONTATO CC, "+
											"TBL_ESTADO E "+
										"WHERE C.id = '"+idCliente+"'	"+
											  "AND C.ID = CE.COD_CLIENTE "+
											  "AND C.ID = CC.COD_CLIENTE "+
											  "AND CE.COD_CLIENTE = CC.COD_CLIENTE "+
											  "AND CE.UF = E.ID ";
			xConn = new XConnection();
			xConn.rs = xConn.seleciona(queryDetalhes);
			
			System.out.println("Query detalhesCliente: " + queryDetalhes);
			ClienteVO clienteVO = new ClienteVO();

			while(xConn.rs.next()) {
				
				clienteVO.setId(xConn.rs.getString(1));
				clienteVO.setNomeFantasia(xConn.rs.getString(2));
				clienteVO.setRazaoSocial(xConn.rs.getString(3));
				clienteVO.setCnpj(xConn.rs.getString(4));
				clienteVO.setIe(xConn.rs.getString(5));
				
				clienteVO.getEndereco().setEndereco(xConn.rs.getString(9));
				clienteVO.getEndereco().setBairro(xConn.rs.getString(10));
				clienteVO.getEndereco().setCidade(xConn.rs.getString(11));
				clienteVO.getEndereco().setUf(xConn.rs.getString(12));
				clienteVO.getEndereco().setReferencia(xConn.rs.getString(13));
				clienteVO.getEndereco().setObs(xConn.rs.getString(14));
				
				clienteVO.getContato().setNomeContato(xConn.rs.getString(17));
				clienteVO.getContato().setNuTel(xConn.rs.getString(18));
				clienteVO.getContato().setNuFax(xConn.rs.getString(19));
				clienteVO.getContato().setSite(xConn.rs.getString(20));
				clienteVO.getContato().setEmail(xConn.rs.getString(21));
			}
			
			xConn.fechaConexao();
			return clienteVO;

		} catch(SQLException e) {
			System.out.println("ERROR detalhesCliente: " + e.toString());
			xConn.fechaConexao();
			return null;
		} catch(Exception e) {
			System.out.println("ERROR detalhesCliente: " + e.toString());
			xConn.fechaConexao();
			return null;
		}						

	}

Inserir :
request.getSession().setAttribute(“clienteForm”, clienteVO);

Recuperar :
ClienteVO cliente = (ClienteVO ) request.getSession().[b]getAttribute/b;

Usei:

request.getSession().setAttribute("clienteForm", clienteVO); 

E na pagina de alteração uso o codigo abaixo para mostrar cada atributo do objeto populado, mas aparacem em branco.

<html:text property="endereco.cidade" size="20" styleClass="text" />

O que pode está ocorrendo amigo mateusbrum?

Vlw…

Nunca utilizei a taglib do struts :frowning:
Mas tente :

<html:text property="clienteForm.endereco.cidade" size="20" styleClass="text" />