Ola estou criando um projeto e a minha ideia é o seguinte. Tenho o menu , conteúdo e rodapé, O menu e o rodapé são sempre os mesmos em todas as páginas, então usei o facelets, mas eu queria que ao navegar pelo menu, somente o conteúdo renderizase, sem recarregar o menu e o rodapé. Eu consigo fazer isso com o próprio facelets ? Preciso usar algum Framework ? Preciso de um caminho …
Ve se te ajuda
http://www.guj.com.br/java/269579-jsf-primefaces-ajax-como-carregar-apenas-um-pedaco-da-pagina-ppr-
Opa ajudou sim. Consegui resolver. Obrigado. Segue o código para futuras consultas.
principal.xhtml
<h:form>
<p:menubar>
<p:submenu label="Cadastro" icon="ui-icon-document">
<p:menuitem value="Cadastro" action="#{navegacao.setConsulta()}" update="conteudo" />
<p:menuitem value="Pedido" action="#{navegacao.setPedido()}" update="conteudo"/>
</p:submenu>
</p:menubar>
<p:panel id="conteudo">
<ui:include src="#{navegacao.pagina}"></ui:include>
</p:panel>
</h:form>
Bean
String pagina;
public void setPedido(){
setPagina("pedido.xhtml");
}
public void setConsulta(){
setPagina("consulta.xhtml");
}
public String getPagina() {
return pagina;
}
public void setPagina(String pagina) {
this.pagina = pagina;
}
Ola. Estou com outro problema agora.
Quando eu chamo o menu cadastro por exemplo(renderiza o cadastro.xhtml no panel ), Ele renderiza corretamente no panel <p:panel id=“conteudo”>… Porem os managesBeans do cadastro não funcionam. Segue um trecho do cadastro.xhtml no qual não “chama” o manageBean que traz a lista das cidades.
</h:head>
<h:body>
<h:form>
<h:outputLabel value="Cidade:" for="txtACCidade" />
<p:autoComplete id="txtACCidade" minQueryLength="3"
value="#{cadastroAlunoBean.pessoaVO.cidadeVO.cidade}"
completeMethod="#{cidadeBean.completeCidade}" var="cid"
itemLabel="#{cid.descricao}" itemValue="#{cid.cidade}"
queryDelay="1"/>
</h:form>
</h:body>
</html>
Obs: Se eu chamar a pagina cadastro.xhtml direto, é executado normalmente e traz as cidades, agora quando faço esse include na pagina principal.xhtml, ocorre esse problema, e nem chega a chamar o bean
Ola amigo
tente fechar o form da pagina que contem o menu antes de voce chamar o include caso contrario se a pagina que for renderizado pelo include tbm possuir um form vai acabar ficando um form dentro do outro o que nao é correto
<h:form>
<p:menubar>
<p:submenu label="Cadastro" icon="ui-icon-document">
<p:menuitem value="Cadastro" action="#{navegacao.setConsulta()}" update=":conteudo" />
<p:menuitem value="Pedido" action="#{navegacao.setPedido()}" update=":conteudo"/>
</p:submenu>
</p:menubar>
</h:form>
<p:panel id="conteudo">
<ui:include src="#{navegacao.pagina}"></ui:include>
</p:panel>
Abraços
Obrigado Amigo.