Solução para navegação JSF 2

1 resposta
palerique

Bom dia!

Preciso de uma solução massa para um menu de um site em JSF. Qual a melhor forma de fazer isso?

Me parece meio POG, mas a solução que está na minha cabeça agora é a seguinte:

<div class="menu" align="center">
                            <ul>
                                <li>
                                    &lt;h:form&gt;
                                        &lt;tr:commandButton text="Analisar novo arquivo"
                                                          actionListener="#{uploadController.novoArquivo}"/&gt;
                                    &lt;/h:form&gt;
                                </li>
                                 
                                <li>
                                    &lt;h:form&gt;
                                        &lt;tr:commandButton text="Submeter arquivo"
                                                          actionListener="#{uploadController.submeterArquivo}"/&gt;
                                    &lt;/h:form&gt;
                                </li>
                            </ul>
                        &lt;/div&gt;

Que são recebidas pelos seguintes métodos:

public void novoArquivo(ActionEvent event) {

        System.out.println("Passei por aqui!!!!!!!!!!");

        entidade = null;
        entidadeDto = null;
        mensagemErro = null;
    }

    public void submeterArquivo(ActionEvent event) {

        System.out.println("Passei por aqui!!!!!!!!!! XPTOoooooooo!!!");
    }

Porém não funciona como eu quero.

O primeiro botão funciona perfeitamente, apontando minhas variáveis para null e, consequentemente, re-renderizando o site para quando essas variáveis apontam null.

O segundo botão gera um nullpointer exception, vejam:

Error 500--Internal Server Error

java.lang.NullPointerException
	at javax.faces.component.UIComponent.popComponentFromEL(UIComponent.java:1850)
	at javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:1157)
	at javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:1156)
	at org.apache.myfaces.trinidadinternal.application.StateManagerImpl.saveView(StateManagerImpl.java:193)
	at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:416)
	at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
	at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
	at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
	at java.security.AccessController.doPrivileged(Native Method)
	at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
	at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
	at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
	at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
	at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

Alguém propõe uma solução?

1 Resposta

surfzera

acho que se você puder pode utilizar algum componente de menu ja pronto do primefaces ou do richfaces

Criado 15 de agosto de 2011
Ultima resposta 15 de ago. de 2011
Respostas 1
Participantes 2