Colocar um valor em uma session no bean - struts

7 respostas
J

Olá pessoal ,
queria colocar no bean um valor em uma
session apos fazer uma consulta
mas não estou conseguindo, já tentei de várias formas.

Tentei dessa forma:
public void InsertSessionId(HttpServletRequest request, UserData user)
mas dá erro !

Código:

7 Respostas

ldanielts

Caramba,

Você está misturando mesmo assim as camadas? Tudo bem dependendo do tamanho do seu projeto, cada caso é um caso, mas eu não acho a coisa mais bonita do mundo.

Seria melhor se você dissesse onde acontece o erro, que erro acontece, etc.

Por partes:

Ocorre a SQLException? Em que linha?

Você tem certeza que user.getLogin() está efetivamente retornando o login do usuário?

Você tem certeza que há apenas um usuário com este login? Da forma como está o código, se estivesse funcionando, em caso de duplicidade ele sempre retornaria o último usuário dos encontrados com o login informado.

Por que você comentou a linha onde você pega a sessão do request? Esse request está válido?

Espero ter ajudado.
Um abraço.

J

ldanielts:
Caramba,

Você está misturando mesmo assim as camadas? Tudo bem dependendo do tamanho do seu projeto, cada caso é um caso, mas eu não acho a coisa mais bonita do mundo.

Seria melhor se você dissesse onde acontece o erro, que erro acontece, etc.

Por partes:

Ocorre a SQLException? Em que linha?

Você tem certeza que user.getLogin() está efetivamente retornando o login do usuário?

Você tem certeza que há apenas um usuário com este login? Da forma como está o código, se estivesse funcionando, em caso de duplicidade ele sempre retornaria o último usuário dos encontrados com o login informado.

Por que você comentou a linha onde você pega a sessão do request? Esse request está válido?

Espero ter ajudado.
Um abraço.

Ok,
neste bean já tem um select
que compara se já existe
um usuário com o mesmo login.

O que eu quero é pegar o login do usuário
e que já está cadastrado, fazer uma consulta
e pegar o id dele e colocar em uma session.

Sei que dessa forma fica mais complicado, mas
quando o usuário se cadastrar ele ja vai poder ir
para o painel de controle sem que tenha que fazer um login.

O erro que ocorre é este:

Espero não ter complicado muito

ldanielts

Ok, ele não está nem encontrando o método InsertSessionId.

Sugiro alterar o nome dele para insertSessionId. Isto o tornaria mais elegante, mas não sei se influenciaria na aquisição do método por reflexão ou qualquer outra forma. Mas sugiro fortemente que você siga as convenções da Sun, principalmente quando estiver usando beans (JB ou EJB).

Procure enviar um trecho do execute da sua cadastro.action.SaveInsertUsuarioAction, assim poderíamos avançar um pouco.

Um abraço.

J

Ok, obrigado pela atenção!

Vamos lá…o erro só acontece quando
eu delaro o HttpServletRequest request:

public void insertSessionId(HttpServletRequest request,UserData user) throws SQLException {

Segue o meu action:

ldanielts

Oi, Ju.

Realmente, não consegui ver outra coisa que possa estar dando errado senão a maneira como você está passando o request. Gostaria de poder ajudar mais.

Você tem certeza de que não deveria chamar o método insertSessionId assim:
adminUsers.insertSessionId(request, user);

Outra coisa, como está a visibilidade deste método? Ele é público e não é estático, ok? Verifique isto, por favor.

Um abraço.

J

ldanielts:
Oi, Ju.

Realmente, não consegui ver outra coisa que possa estar dando errado senão a maneira como você está passando o request. Gostaria de poder ajudar mais.

Você tem certeza de que não deveria chamar o método insertSessionId assim:
adminUsers.insertSessionId(request, user);

Outra coisa, como está a visibilidade deste método? Ele é público e não é estático, ok? Verifique isto, por favor.

Um abraço.

ju:

AdminUsers adminUsers = new AdminUsers();

adminUsers.insertUser(user);
adminUsers.insertSessionId(user);

Muito bom mesmo!
O erro estava aqui :
adminUsers.insertSessionId(request, user);

Minha aplicação ficou perfeita,obrigado e abraços.

ldanielts

Que bom.

Abraços.

Criado 21 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 7
Participantes 2