Redirecionamento Implícito JSF 2.0 ( Urgente !)

5 respostas
D

Pessoal, tudo bem ?

Sou novo aqui no GUJ , estou desenvolvendo meu TCC utilizando JSF 2.0 + PrimeFaces.

Não tenho experiência em java, estou iniciando.

Não consigo fazer o redirecionamento implícito utilizando um bean gerenciável.

Quem puder ajudar, segue o código !

Obrigado !


index.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<h:head>



</h:head>

<h:body style=“font-size: 10pt”>

<h:form>

<p:layout fullPage=“true” >

<p:layoutUnit position=“top” height=“30” header="">

</p:layoutUnit>

<p:layoutUnit position=“center” header=“Logar no Sistema” width=“500”>

<h:panelGrid columns=“1”>
<p:panel header=“Informe os dados” style=“text-align: left”>
<h:panelGrid columns=“2”>
<h:outputLabel value=“Empresa:”/>
<h:inputText id=“empresa” label=“Empresa” required=“true” value="#{usuarioBean.nomeEmpresa}" requiredMessage=“Informe o Nome ou Código da Empresa”/>
<h:outputLabel value=“Login:”/>
<h:inputText id=“login” label=“Login” required=“true” value="#{usuarioBean.nomeUsuario}"/>
<h:outputLabel value=“Senha:”/>
<h:inputSecret id=“senha” label=“Senha” required=“true” value="#{usuarioBean.senha}" />
</h:panelGrid>                
        </p:panel>            
</h:panelGrid>
        <h:commandButton value="Logar" action="#{usuarioBean.logar}" />
        <h:messages />
</div>
</p:layoutUnit>
        <p:layoutUnit position="left" width="250" header="Calendario" closable="true">
        <br/>
        <p:calendar mode="inline" />
</p:layoutUnit>

<p:layoutUnit position="right" width="350" header="Avisos" closable="true">

<h:graphicImage url="" />

</p:layoutUnit>

<p:layoutUnit position="bottom" height="33" header="">
</p:layoutUnit>
</p:layout>
</h:form>

</h:body>


UsuarioVO.java

package Beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name=usuarioBean)

@SessionScoped

public class UsuarioVO

{

private int codEmpresa;

private String nomeEmpresa="";

private int id;

private String nome;

private String nomeUsuario="";

private String email;

private boolean autenticado = false;

private String senha="";

public UsuarioVO() {

}

public String getNomeEmpresa() {
    return nomeEmpresa;
}

public void setNomeEmpresa(String nomeEmpresa) {
    this.nomeEmpresa = nomeEmpresa;
}

public int getCodEmpresa() {
    return codEmpresa;
}

public void setCodEmpresa(int codempresa) {
    this.codEmpresa = codempresa;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getNomeUsuario() {
    return nomeUsuario;
}

public void setNomeUsuario(String nomeusuario) {
    this.nomeUsuario = nomeusuario;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public boolean getAutenticado()
{
    return this.autenticado;
}

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}

public void setAutenticado(boolean autenticado) {
    this.autenticado = autenticado;
}

public String novo()
{
    return "novoUsuario";
}


public String logar()
{        
    return "loginOk";
}

}

5 Respostas

G

danilogm:
Pessoal, tudo bem ?

public String logar()
{        
    return "loginOk";
}

}

tente mudar para

return "/loginOk.jsf?faces-redirect=true";
D

gapler, obrigado por ajudar !

seguinte, não funcionou. É como se o método não estivesse sendo executado, não acontece nada !

preciso descobrir como debugar a classe, tem jeito no netbeans 6.9 ?

Grande abraço !!!

G

danilogm:
gapler, obrigado por ajudar !

seguinte, não funcionou. É como se o método não estivesse sendo executado, não acontece nada !

preciso descobrir como debugar a classe, tem jeito no netbeans 6.9 ?

Grande abraço !!!

Algum progresso nesses dias?

Bom, você o netbeans tem um modo de debug, sim - mas você já pode tentar um método simples que é dar um System.out no método, assim pode gerenciar pela saída do glassfish (ou outro container) se pelo menos ele está entrando no método.

Tem como postar a configuração do faces-config? Pode ser que haja algo nele que está interferindo no redirecionamento.

Você também pode trocar seu código pelo objeto do prime:

<p:commandButton id="xxxx" value="Logar" action="#{usuarioBean.logar}" />
J

posta ae o codigo do faces-config/web-xml.

por padrao ao jsf2.

public String logar() { return "loginOk"; } }

ele vai pra uma pagina chamada loginOk.xhtml ( existe essa pagina correto? ), a não ser que tu tenha definido alguma regra no faces-config primeiro.
a ordem seria: checar o faces-config, caso nao exista nada, ele tenta a implicita senao me engano.

D

Galera, primeiro obrigado por ajudar …

Eu não tenho o arquivo , pois em um livro que comprei, diz que no padrão JSF 2.0 , este não é necessário já que existe o redirecionamento implícito.

fiz o teste com um botão simples em outro arquivo e funcionou, então realmente não preciso do faces-config e o Bean está funcionando.

Fui mexendo até descobrir que se eu retiro a tag <h:head>, o botão funciona, mas a tela de login não é montada por completa…

Alguém explica isso ?

Grande abraço a todos !!!

Criado 4 de fevereiro de 2011
Ultima resposta 7 de fev. de 2011
Respostas 5
Participantes 3