Como atualizar apenas parte da página - JSF e Prime Faces

Olá pessoal, como vão?

Sei que já deve haver um tópico sobre esse assunto, mas é que estou desenvolvendo para meu TCC e estou em cima da hora, e não tenho muito tempo para procurar :frowning:

Bom, é seguinte: desenvolvi uma tela inicial para meu sistema, contendo um menu. Neste menu, ao clicar em Instituição > Nova Instituição, deve aparecer um formulário para preenchimento das informações da Instituição.
Eu uso JSF com PrimeFaces. Uso aquele padrão de e (north, south, east, west, center), etc.

O meu problema começa aqui: quando eu clicasse em Nova Instituição, eu gostaria que o formulário de preenchimento aparecesse no centro da página, mas só estou conseguindo fazer ele abrir em outra página :frowning:
Eu estava tentando:

<layoutUnit position=“center” id=“centro_pagina”…>

e no menu:

<p:menuitem value=“Nova Instituição” update=“centro_pagina” url=“nova_instituicao.xhtml”>

Porém, como eu disse, ele abre o formulário em outra página =/

Podem me ajudar, por favor? Estou correndo contra o tempo =/

Valeu galera,
[]'s

No centro da pagina vc pode colocar o conteudo
dentro de um panelGroup com um rendered…

assim

<h:panelGroup rendered="#{verificadorMB.acao == 1}"
		id="conteudo">
		<ui:include src="/pages/tal.xhtml" />
</h:panelGroup>

e no seu menu vc faz assim


<p:menuitem value="Nova Instituição" update="conteudo" process="@this"> 
<f:setPropertyActionListener target="#{verificadorMB.acao}" value="1" />
</p:menuitem>

Opa, pelo titulo do topico ja ia falar “Use Ajax”
Mas quando li o conteudo, vi que nao tem nd a ver com isso, e vc quer um simples Dialog

da uma olhada no showcase do Primefaces: http://www.primefaces.org/showcase/ui/dialogLogin.jsf;jsessionid=hna80o04wfo5zq45pnk8nkj2

Você pode utilizar o tag UI. É só você criar um template para sua página e no CENTER incluir sua tela de cadastro:

No template ficaria:

<p:layoutUnit position="north">
  <ui:include page="menu.xhtml" />
</p:layoutUnit>

<p:layoutUnit position="center">
  <ui:insert name="body">Page</ui:insert>
</p:layoutUnit>

E na sua página fica:

<html>
  <ui:composition template="/templates/default.xhtml">
    <ui:define name="body">
         <!-- Seu form de cadastro -->
    </ui:define>
  </ui:composition>
</html>

Nesse caso, todas as suas páginas irão ter o template padrão, só alterando o seu formulário principal. Na minha opinião fica mais organizado.

Qualquer dúvida, estamos ai…

Abraço.

Valeeeu pela ajuda galera, estou quase lá :smiley:

Mas, se não fosse pedir de mais, eu queria algo mais simples, porque ainda sou iniciante em JSF :frowning:

Todas as respostas foram muito úteis, e vou tentar todas, mas, não existe um jeito mais fácil de se fazer?
Pelo menos por enquanto, para conclusão do meu TCC…

É quase o que o alberthy disse, as páginas vão ter um padrão só, a única coisa que vai alterar é o centro da página, que vai ter seu conteúdo alterado conforme as escolhas do usuário.
Por isso a minha dúvida :frowning:

Obrigado pela ajuda galera,
[]'s

Dúvida sanada galera :smiley: :smiley: :smiley:

Obrigado a todos pela ajuda!!
Peguei um pouquinho de cada e consegui resolver meu problema :slight_smile:

Valeu galera, de coração

[]'s

Gustavo você poderia por favor dizer como conseguiu resolver,
estou com a mesma duvida.

Obrigado!