[RESOLVIDO]rendered não funciona

12 respostas
E

Minha tela de login, entra no meu Bean Abaixo :

@ManagedBean
@ViewScoped
public class TblusuMbean extends ManagedBeanGenerico<Tblusu, TblusuServico> implements Serializable {

  private int tpacesso;
  
     public void verificausuario() {
         
         usuariologado=0;
         List<Tblusu> resultado = servico.buscaruserservice(getObj1().getUsunome(),getObj1().getUsusenha());         

         ///////Se a senha for VÁLIDA, entra no FOR e preenche o usuariologado=1
         for (Tblusu met:resultado) {			
        	 System.out.println("Usuario "+met.getUsunome());
                  usuariologado=1;
	  } 
        
        if (usuariologado==0) {
	     FacesContext context = FacesContext.getCurrentInstance();
	     context.addMessage("formindexlogin:successMsg", new FacesMessage(FacesMessage.SEVERITY_ERROR, "evandro", "Login/Senha Inválido!"));
        } else
        {
            System.out.print("logado com sucesso");           
            this.tpacesso = 1;
            ServicoUtils.redirecionaLogin("welcome.jsf");
        }
         
     }     
    
    public int getTpacesso() {
        return tpacesso;
    }

    public void setTpacesso(int tpacesso) {
        this.tpacesso = tpacesso;
    }    
  
}

/////////////////////////////welcome

        <p:panel id="pnlusuario" style="left:100px; width:270px;height:50px;" rendered="#{tblusuMbean.tpacesso == 0}">
                   <h:outputText value="Usuario normal " />
       </p:panel> 
        
        <p:panel id="pnlusuario" style="left:100px; width:270px;height:50px;" rendered="#{tblusuMbean.tpacesso == 1}">
                   <h:outputText value="Usuario medico " />
       </p:panel>

Ele esta aparecendo o texto "Usuario Normal ", só que escolhi opcao 1, como eu faço para aparecer “Usuario Medico”, de acordo com a variavel preenchido no verificausuario

Alguem pode me dar uma força?

12 Respostas

HenriqueBR

Evandro,

Faça um teste de exibição dessa variável tbacesso. Coloque ela em um outputText para ver qual o valor ela tem.

Outra questão é que pode ser o escopo do seu Maneged Bean, para gerenciar login eu utilizo o escopo Session.

E

fiz este teste Henrique e esta vindo 0 mesmo

Arthur_F_Ferreira

Se for uma requisição ajax, você tem que mandar atualizar esse panel.

E

estou fazendo o redirecionamento apenas para a pagina welcome.jsf, mas acho que o problema é que nao esta carregado a minha variavel tpacesso

ServicoUtils.redirecionaLogin("welcome.jsf");
HenriqueBR

Evandro,

Troque o escopo do seu managed bean para session e faça um teste.

Como não conheço seu método ServicoUtils.redirecionaLogin(""); não sei como é executado o redirecionamento e dessa forma não sei se o ViewScope esta sendo destruído.

E

O rediricionamento eseta fazendo da forma abaixo :

public static void redirecionaLogin(String url) {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect(url);
        } catch (IOException ex1) {
                System.out.print(ex1);             
        }
    }

vou testar o que vc falou

Arthur_F_Ferreira

É…se ele redireciona ele nunca vai armazenar o valor 1. Toda vez que você usa o redirecionamento, mesmo que seja para a mesma página, o container JSF destrói a View e cria uma nova. Ou seja, essas informações que você recuperou, foram destruídas junto com a View.

E

deixei o meu bean como Session ai funcionou do jeito que queria …obrigado galera

Arthur_F_Ferreira

Calma, jovem! Não é porque funcionou que você tem de colocar o escopo como session. Você realmente precisa fazer um redirect para essa página?

E

Preciso, pq tenho o Login assim que validar o usuario e quando o usuario esta com sua validação ok, vai para a pagina inicial do sistema.

Arthur_F_Ferreira

Se a sua necessidade é manter as informações do usuário durante a sessão dele, tudo bem. Tem motivo para ser Session. Mas tome cuidado, se não para qualquer redirect que você fizer na sua aplicação acabará tendo vários beans de sessão e isso pode pesar (muito).

E

blz. arthur , obrigado pela dica. …

fica com Deus

Criado 28 de janeiro de 2013
Ultima resposta 28 de jan. de 2013
Respostas 12
Participantes 3