Passando parametro em jsf

Java

05/06/2011

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.
Alexandre Pires

Alexandre Pires

Curtidas 0

Respostas

Davi Costa

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
GOSTEI 0
Dyego Carmo

Dyego Carmo

05/06/2011

Voce pode tentar passar o parametro "por dentro" , ou seja , usando o <f:setPropertyActionListener/>
GOSTEI 0
POSTAR