3
respostas

Estou com dúvida no curso de JSF 2: simplicidade e produtividade na Web, no exercício 4 do capítulo Componentes ricos com Primefaces.

Ao testar o menuBar, na segunda vez que clico em um dos itens do menu nada acontece, dai então preciso clicar pela segunda veze no mesmo item para que o link me leve para página desejada. O engraçado que na primeira vez, assim que a pagina acabou de ser renderizada, tudo ocorre como deveria.

Esse é o meu código:

<h:form>
                <p:menubar>
                    <p:submenu label="Cadastros">
                        <p:menuitem value="Autores" action="autor" />
                        <p:separator />
                        <p:menuitem value="Livros" action="livro" />
                    </p:submenu>
                </p:menubar>
            </h:form>

Será que alguem sabe o que pode estar errado? Já tentei inclusive adicionar a propriedade immediate="true" e também tentei ?faces-redirect=true mas nada funcionou.

3 respostas

Percebi que utilizando ?faces-redirect=true funcionou corretamente. Não havia funcionado antes pois escrevi redirect incorretamente. Mesmo assim é estranho o comportamento, pois na video aula não foi necessário adicionar a instrução ?faces-redirect=true.

Segui os passos do exercício e funcionou perfeitamente, seria interessante dar mais uma revisada nos códigos, ver se não tem nenhuma tag solta por exemplo.

Diferente do p:commandButton ou do p:commandLink onde a action pode receber a página sem a extensão .xhtml, o comportamento do p:menuItem é um pouco diferente, como você precisa passar uma URL em vez de uma action, seria interessante você colocar autor.xhtml e livro.xhtml, faça o teste, espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software