Estou construindo uma aplicação, no qual estou utilizando e como layouts de todas as páginas, ou seja, possuo uma página padrão onde todas as outras páginas serão igual a ela.
O Problema é que quando clico em um link, toda a página é recarregada. Gostaria que, ao clicar no link, apenas a parte onde o conteúdo deste link irá aparecer, fosse carregada. Como faço isso?
Irei postar o meu layout e a outra página que o link irá chamar
jonatex, utilizando o JSF com primefaces, dentro de cada componente de ação do prime, existe um atributo chamado update, que neste você vai passar o ID do componente que você deseja que seja atualizado, e para certificar que seja soliçitação via ajax, coloque o atributo ajax=“true”, assim você terá o controle que deseja.
Andre não deu certo. Quando coloco ajax=“true”, o link fica como um javascript, e não faz ação nenhuma. Se coloco ajax=“false” ele abre a link normalmente, porém recarrega a página inteira.
//pode usar o commandLink tbm
<h:commandButton value="Valor" action="#{actionBean}">
<f:ajax render="@form" />
//caso vc queira atualizar um formulario completo, ou se for algum especifico coloque o id do mesmo render="@form :idForm "
</h:commandButton>
Cara é o seguinte, nem li seu codigo todo, mas por ter um pouco de experiencia com primefaces ti digo o seguinte:
-Como o cara tinha ti respondido ae, cada componente tem um atributo chamado “update”, certifique-se pelo FIREBUG se ele esta pegando o caminho correto do componente a ser atualizado…
Faça o seguinte teste marque no h:form - > prependId=“false”, deste modo o navegador nao vai criar o id, fica mais claro de voce ver pelo firebug.
Pelo firebug voce da inspect no componente e ve a atualizacao se bate com o componente a ser atualizado… Provavelmente é isto.
Outra coisa, por DEFAULT o AJAX ja é marcado como “TRUE” entao seria redundancia marca-lo.
Ace, esta sua forma deu certo, porém ao clicar no link, este não aparece na URL, ele “trava” a URL.
Desta forma quando vou, por exemplo, cadastrar um cliente, ao clicar no botão novo, ele atualiza a página e ai sim a URL também atualiza.
Vocês sabem de alguma forma, que continue do jeito que está, porém ao clicar no link ele atualizar a URL também?
Mas ai vc acaba caindo um pouco em contradição rsrs.
No inicio vc disse não querer que a pagina seja recarregada, a solução para isto é uma requisição ajax, pois somente um conteudo especifico será renderizado.
Pense por exemplo, qdo se quer inserir um novo cliente, vc insere os dados e ao submeter a requisição, é onde o ajax entra em ação renderizando somente o formulario de listagem por exemplo.
Entendi. Só devo fazer isso então apenas em certas ocasiões que estou pensando aqui.
Como página principal, ao clicar no link, o interessante é ele carregar toda a página, para que assim possa atualizar a URL.
Quando eu já estiver onde eu quero, o interessante é utililzar o seu exemplo para atualizar só o meu form.