Verificar se a página está carregada? ( estou usando: JSF 2.0 + JPA 2 + PrimeFaces + Netbeans 7.0.1 + Glassfish)

Java

24/10/2011

Boa tarde pessoal,

Gostaria de saber se o código abaixo está correto e se é assim que devemos fazer para verificar se a página está carregada:
public String chamaHome(){  
    FacesContext context = FacesContext.getCurrentInstance();  
    String obtemIdPaginaAtual = context.getViewRoot().getViewId();    
    boolean isLoadPaginaAtual = obtemIdPaginaAtual.lastIndexOf(home.xhtml) > -1;   
      
    if (!isLoadPaginaAtual){  
        return /home.xhtml;  
    } else{  
        return null;  
    }  
} 


Bom, eu fiz esse código acima porque no código abaixo, em um determinado ponto de minha aplicação ao chamar a página, dava o seguinte erro:

/resources/templates/MenuPrincipal/home.xhtml Not Found in ExternalContext as a Resource


Antes o método era assim (de acordo com as aulas do Dyego):
public String chamaHome(){  
        return /home.xhtml;  
    }  
}  


Está certo o que eu fiz pessoal ? é a maneira melhor de se fazer isso?

abs
Hugo

Hugo

Curtidas 0

Respostas

Robson Teixeira

Robson Teixeira

24/10/2011

Poderia postar o erro do stackTrace todo obrigado.
GOSTEI 0
Hugo

Hugo

24/10/2011

Poderia postar o erro do stackTrace todo obrigado.

Olá Robson,

Segue o meu stacktrace:

com.sun.faces.context.FacesFileNotFoundException: /resources/templates/MenuPrincipal/home.xhtml Not Found in ExternalContext as a Resource
	at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:232)
	at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:273)
	at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:209)
	at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:233)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Unknown Source)

GOSTEI 0
Luciano Martins

Luciano Martins

24/10/2011

amigo, pesquise sobre SPRING SECURITY vai te ajudar em muitas coisas pra controlar ás views do seu sistema, ok?
GOSTEI 0
Robson Teixeira

Robson Teixeira

24/10/2011

A pagina pedida esta no diretorio que você informa ao JSF???
GOSTEI 0
Hugo

Hugo

24/10/2011

amigo, pesquise sobre SPRING SECURITY vai te ajudar em muitas coisas pra controlar ás views do seu sistema, ok?

Opa, valeu demais pela dica Luxu, vou pesquisar sobre isso.

Sds,
GOSTEI 0
Hugo

Hugo

24/10/2011

A pagina pedida esta no diretorio que você informa ao JSF???


Boa noite Robson,

Sim, está sim, a página HOME.xhtml, está na pasta raiz.

GOSTEI 0
Robson Teixeira

Robson Teixeira

24/10/2011

na raiz vc diz dentro desse diretorio da sua app /resources/templates/MenuPrincipal/???
GOSTEI 0
Hugo

Hugo

24/10/2011

na raiz vc diz dentro desse diretorio da sua app /resources/templates/MenuPrincipal/???


A home.xhtml está na pasta raiz do projeto, ou seja, /home.xhtml

A pasta /resources/templates/MenuPrincipal/ que você cita, é onde está o menu principal que contém um link, que ao ser clicado deveria redirecionar para a página /home.xhtml na raiz, entendeu?


abraços
GOSTEI 0
Dyego Carmo

Dyego Carmo

24/10/2011

No Jquery tem o .document.ready() ou .ready() , ajuda pacas nestas horas :)
GOSTEI 0
POSTAR