| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/01/2010 09:50:40
|
Silveira.Marcelo
Debugger
Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline
|
Olá comunidade.
Estou com um pequeno probleminha em minha aplicação. Estou desenvolvendo um módulo onde o usuario poderá renovar sua senha de validação e tenho o seguintes códigos. Lembrando que estou usando JSF e JBoss Seam.
Segue um JavaBean Recuperar Senha, onde tenho apenas métodos acessores
Agora o método em meu ManagedBean onde ele efetua a troca da senha.
e por fim meu Backing Bean JSF
O problema é o seguinte amigos, não estou conseguindo pegar os dados da view jsf através dos gets and sets dos atributos da minha classe RecuperarSenha.java, uma coisa simples mas que eu já debuguei várias vezes e não estou conseguindo enxergar o erro.
Se alguém já passou por esta situação e puder me ajudar fico muito grato.
Olá pessoal.
Quero agradecer as 62 visitas até agora registradas e volto a esse post para dizer-lhe que consegui a solucionar esse pequeno problema. Então vamos as explicações para se caso pintar um novo post com esse mesmo problema, possa servir para acender uma luz no fim do túnel para outros.
1º - Cada coisa no seu lugar.
Tive que rever o meu POJO e coloca-lo em um pacote chave. Um pacote de serviços da aplicação, pois como já tinha uma Entity Bean Usuarios onde ao se cadastrar o mesmo já salva uma senha, precisava apenas manipular os atributos dessa minha classe para fazer a operação desejada, que era simplesmente trocar a senha.
Com relação ao escopo de contexto, mudei para o CONVERSATION, pois o usuario em sua natureza já ocupa um escopo de SESSION.
Antes o método que fazia essa troca estava no Managed Bean que gerencia o CRUD da Entity Bean Usuario, então resolvi criar um Managed Bean que gerencia-se as Actions relacionadas a classe de serviço acima criada. E assim futuramente posso implementar um método nessa mesma classe na qual se o usuário esquecer a senha, ele poderá receber uma senha padrão e depois trocar a senha. Segue abaixo a classe:
2 - "Dando nome aos bois":
Outra coisa também que não estava legal em meu backing bean JSF, era o nome dado ao <h:form></h:form> e aos objetos do formulário como por exemplo <h:inputText></h:inputText>. Bem então como o nome do meu Bean onde nele continha os atributos com os métodos acessores meu <h:form></h:form> recebeu o mesmo nome do componente Seam a qual havia dado na classe RecuperarSenha.java como o nome dado aos atributos.
E assim todos os objetos e a Action Listener poderia ser chamada corretamente, pois o Seam Phase Listener e o life cycle do JSF iriam instanciar esses objetos em tempo de execução corretamente sem gerar exception
3 - Injetar novamente um componente que já está injetado mata o escopo de contexto.
E por fim, no post anterior quando pedi ajuda a comunidade tinha um detalhe que só percebi depois de vários debug's na aplicação.
Eu estava injetando novamente na conversação um usuário que por natureza já tem um scopo de Sessão e por este motivo estava matando a conversação dos meu componentes descritos acima, pois ele já trazia do banco de dados a senha salva na hora do cadastro e anulava os dados inseridos no meu backing bean JSF.
Espero ter ajudado de alguma forma, e fico aberto para críticas construtivas, perguntas ou até mesmo indagações da comunidade porque acho que esse tema ainda pode ser discutido e de certa forma pode até surgir outra forma de solução.
Um abraço a todos e até a próxima
This message was edited 2 times. Last update was at 19/01/2010 11:35:53
|
Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP |
|
|
 |
|
|
|
|
|
|