[RESOLVIDO] Session + Struts

4 respostas
caraujocruz

Bom dia Pessoal,
Preciso de uma ajuda com meu sistema.
Estou tentando gravar o usuário que está na session no banco de dados, alguém pode me dar uma dica de como se fazer isso ?

Tentei assim e não deu certo.

public class AdicionaChamado extends Action {
	
	private String usuario = "" ;

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		ChamadoForm msg = (ChamadoForm) form;
		Chamados chm = msg.getChm();
		chamadoDao help = new chamadoDao();
		
                    //Aqui eu pego o usuário que está na session		
		HttpSession session = request.getSession();
		session.getAttribute(usuario);

                   //No log do tomcat imprimi o usuário que está logado.
		System.out.println(usuario);
					
		chm.setUsuario(usuario);
		
                   //Metodo que salva meu chm no banco.					
		help.adicionaMensagem(chm);
		
		return mapping.findForward("mensagem");
	}
}

DAO :

public void adicionaMensagem(Chamados chm) throws SQLException {
		PreparedStatement stmt = connect.prepareStatement(  "insert into tb_chamados " +
															"( assunto" +
															", mensagem" +
															", departamento" +
															", datahora " +
															", usuario) " +
															" values (?,?,?,?,?)");
		stmt.setString(1, chm.getAssunto());
		stmt.setString(2, chm.getMensagem());
		stmt.setString(3, chm.getDepartamento());
		stmt.setString(4, chm.getDatahora());
		stmt.setString(5, chm.getUsuario());
		stmt.execute();
		connect.close();
	}

Agradecido,
:smiley:

4 Respostas

welbermacedo

caraujocruz,

Tenta assim:

UsuarioModel usuario = (UsuarioModel) request.getSession().getAttribute("usuario");
chm.setUsuario(usuario);
caraujocruz

Então welbermacedo ,
Não deu certo ainda.

//Meu Obejto login está carregado na session, então preciso dizer o que quero salvar no banco.
//Ex. quando vou mostrar o usuário que está logado na pagina eu uso o session.setAtributte("checklogin" , login ) e na minha .jsp uso ${checklogin.usuario}.
//Não sei como faço isso na minha Action.
// Tentei o que você pediu ele retorna null, eu alterei meu bean para receber um objeto do tipo Login e meu DAO  para gravar um Objeto Login.

Login login = (Login) request.getSession().getAttribute("login");

Obrigado pela Atenção,

welbermacedo

Fala cara,

Login login = (Login) request.getSession().getAttribute("login");

No getAttribute você tem que chamar o nome que deu a session… no lugar de login coloca “checklogin”

Assim:

Login login = (Login) request.getSession().getAttribute("checklogin");  
chm.setUsuario(login);

Isso porque você definiu session.setAtributte(“checklogin” , login )

Não esquece de lah no DAO fazer:

stmt.setString(5, chm.getUsuario().getCodigo);   //exemplo

Espero ter ajudado.

Abraços!

caraujocruz

Perfeito welbermacedo, Funciono !

pensei que tinha que colocar o nome da variavel que declarei ( login) dentro do .getAtributte("").

Muitissimo Obrigado,

Criado 4 de março de 2010
Ultima resposta 4 de mar. de 2010
Respostas 4
Participantes 2