Passando parametro em jsf
Olá amigos preciso de uma dica.Estou desenvolvendo uma aplicação web (com jsf e jpa) e preciso que a identificação do usuário que obtenho na tela de login, seja passada para uma outra tela onde realizo a importação de um arquivo de retorno bancário. Exemplo após acessar o sistema quero obter qual usuário esta logado para poder passar esta identificação para uma função que chamo em outra tela e realizar a importação. segue abaixo o código que uso atualmente:
jsp de login <td align="center"><h:inputText value="#{loginJSFBean.login}" maxlength="20"/></td> </tr> <tr align="center"> <td>Senha:</td> <td><h:inputSecret value="#{loginJSFBean.senha}" maxlength="20"/></td> </tr> <tr align="center"> <td colspan="2"> <h:commandButton value="ENTRAR" action="#{loginJSFBean.verificarUsuario()}"> <f:param id="id" value="#{loginJSFBean.usuLogado.fdId}"/> </h:commandButton>
managerbean public String verificarUsuario() throws Exception { usuLogado = usuDAO.validaUsuario(login, senha); if(usuLogado != null){ System.err.println("Exibe id do usulogado "+usuLogado.getFdId()); return "loginok"; } else { return "loginfalhou"; }
preciso pegar esse usuário que se logou e usar na seguinte função que fica em outra tela chamada upload.
jsp upload
<rich:fileUpload fileUploadListener="#{fileUploadBean.getUploadArquivo}" acceptedTypes="RET, ret"> <a4j:support event="onuploadcomplete" reRender="info"/> </rich:fileUpload> <h:commandButton value="Importar" action="#{fileUploadBean.importar}" label="Importar"/>
preciso passar o id do usuario logado nesta página para entao chamar a função java que importa o arquivo e grava no banco.Consigo exibir em qualquer página do sistema o id, nome e login do usuário logado, mas nao sei como repassar este valor para a função que importa o arquivo. Se puderem ajudar fico grato.
Obrigado.
jsp de login <td align="center"><h:inputText value="#{loginJSFBean.login}" maxlength="20"/></td> </tr> <tr align="center"> <td>Senha:</td> <td><h:inputSecret value="#{loginJSFBean.senha}" maxlength="20"/></td> </tr> <tr align="center"> <td colspan="2"> <h:commandButton value="ENTRAR" action="#{loginJSFBean.verificarUsuario()}"> <f:param id="id" value="#{loginJSFBean.usuLogado.fdId}"/> </h:commandButton>
managerbean public String verificarUsuario() throws Exception { usuLogado = usuDAO.validaUsuario(login, senha); if(usuLogado != null){ System.err.println("Exibe id do usulogado "+usuLogado.getFdId()); return "loginok"; } else { return "loginfalhou"; }
preciso pegar esse usuário que se logou e usar na seguinte função que fica em outra tela chamada upload.
jsp upload
<rich:fileUpload fileUploadListener="#{fileUploadBean.getUploadArquivo}" acceptedTypes="RET, ret"> <a4j:support event="onuploadcomplete" reRender="info"/> </rich:fileUpload> <h:commandButton value="Importar" action="#{fileUploadBean.importar}" label="Importar"/>
preciso passar o id do usuario logado nesta página para entao chamar a função java que importa o arquivo e grava no banco.Consigo exibir em qualquer página do sistema o id, nome e login do usuário logado, mas nao sei como repassar este valor para a função que importa o arquivo. Se puderem ajudar fico grato.
Obrigado.
Alexandre Pires
Curtidas 0
Respostas
Davi Costa
05/06/2011
Pesquise sobre algum framework de segurança já pronto testado não precisa reinventar roda, eu aconselharia Spring Security.
Mas se quiser continuar fazendo as coisas na mão. Use um filter e jogue o usuário logado na sessão(session) e sempre que precisa dele pegue esse atributo na session. É interessante tb criar um botão de logoff para redirecionar o usuário para a tela de autenticação e setar como null esse atributo usuário da session.
Espero ter ajudado
Att Davi
Mas se quiser continuar fazendo as coisas na mão. Use um filter e jogue o usuário logado na sessão(session) e sempre que precisa dele pegue esse atributo na session. É interessante tb criar um botão de logoff para redirecionar o usuário para a tela de autenticação e setar como null esse atributo usuário da session.
Espero ter ajudado
Att Davi
GOSTEI 0
Dyego Carmo
05/06/2011
Voce pode tentar passar o parametro "por dentro" , ou seja , usando o <f:setPropertyActionListener/>
GOSTEI 0