Bom dia pessoal,
dando continuidade ao post e também querendo atualizar somente a página central não estou conseguindo sem usar o
<f:setPropertyActionListener target="#{fTRNav.pageName}" value="/disp2.xhtml" />
que mesmo assim recarrega a página inteira.
Alguém pode me ajudar?
Segue o código da minha página template:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<f:view contentType="text/html">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link type="text/css" rel="stylesheet" href="/resources/css/default.css" />
<link type="text/css" rel="stylesheet" href="/resources/css/principal.css" />
<title>xxxxxxx</title>
<style type="text/css">
.ui-widget, .ui-widget {
font-size: 14px !important;
}
body {background-color: #009900;
font-size: 14px;
}
.ui-datatable {
font-size: 14px !important;
}
.old{
background-color:#E0E0E0;
color: red;
}
.fonteMenor {
font-size: 14px !important;
}
.fonteMaior {
font-size: 15px !important;
}
.ui-panel, .ui-panel-titlebar {
font-size:14px;
}
</style>
<script type="text/javascript">
PrimeFaces.locales['pt_BR'] = {
closeText: 'Fechar',
prevText: 'Anterior',
nextText: 'Próximo',
currentText: 'Começo',
monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio',
'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
'Novembro', 'Dezembro'],
monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta',
'Sexta', 'Sábado'],
dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
weekHeader: 'Semana',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: '',
timeOnlyTitle: 'Só Horas',
timeText: 'Tempo',
hourText: 'Hora',
minuteText: 'Minuto',
secondText: 'Segundo',
currentText : 'Data de Hoje',
ampm: false,
month: 'Mês',
week: 'Semana',
day: 'Dia',
allDayText: 'Todo Dia'
};
</script>
<script type="text/javascript">
function start() {
statusDialog.show();
}
function stop() {
statusDialog.hide();
}
</script>
</h:head>
<h:body>
<p:layout fullPage="true" style="min-width:100px;max-width:90%;min-height:470px">
<p:layoutUnit position="north" header="Sistema de Gerenciamento de Clube" resizable="true" size="170" collapsible="true">
<h:form prependId="false">
<center>
<h:graphicImage style="max-width:30%; min-width:6%;min-height:6%" url="/tema/imagens/uniao.png"/>
<br/> <font size="2"><i>Tel.: (031) 8898-4828</i></font>
</center>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="west" size="13%" header="Menu" resizable="true" closable="true" collapsible="true">
<ui:insert name="menu">
<h:form prependId="false">
<p:slideMenu style="max-width: 95%; min-width:45%;font-size: 12px" >
<p:submenu label="Página Inicial" style="font-size: 12px">
<p:menuitem value="Página Inicial" icon="ui-icon-home" action="index.faces"/>
</p:submenu>
<p:submenu label="Conta" style="font-size: 12px">
<p:menuitem value="Conta" icon="ui-icon-person" action="#{navBean.doNav()}">
<f:setPropertyActionListener target="#{navBean.page}" value="conta" />
</p:menuitem>
<p:menuitem value="Centro Custo" icon="ui-icon-person" action="#{centroCustoBean.goCentroCusto()}"/>
</p:submenu>
<p:submenu label="Fornecedor" style="font-size: 12px">
<p:menuitem value="Fornecedor" icon="ui-icon-person" action="#{fornecedorBean.goFornecedor()}"/>
</p:submenu>
<p:submenu label="Produto" style="font-size: 12px">
<p:menuitem value="Produto" icon="ui-icon-person" action="#{produtoBean.goProduto()}"/>
<p:menuitem value="Unidade" icon="ui-icon-person" action="#{unidadeBean.goUnidade()}"/>
</p:submenu>
<p:submenu label="Funcionário" style="font-size: 12px">
<p:menuitem value="Funcionário" icon="ui-icon-person" action="#{funcionarioBean.goFuncionario()}"/>
</p:submenu>
<p:submenu label="Sócio" style="font-size: 12px">
<p:menuitem value="Sócio" icon="ui-icon-person" action="#{socioBean.goSocios()}"/>
</p:submenu>
<p:submenu label="Compra" style="font-size: 12px">
<p:menuitem value="Lista de Compras" icon="ui-icon-person" action="#{compraController.goCompraLazy()}"/>
<p:menuitem value="Relatórios" icon="ui-icon-person" action="#{compraBean.goListaCompra()}"/>
</p:submenu>
</p:slideMenu>
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/j_spring_security_logout">
<h:outputText value="Logout"/>
</h:outputLink>
</h:form>
</ui:insert>
</p:layoutUnit>
<p:layoutUnit position="center" style="font-size:14px;min-width:30%;max-width:100%;min-height:30%">
<ui:insert name="centro">
</ui:insert>
</p:layoutUnit>
</p:layout>
</h:body>
</f:view>
</html>
Meu NavBean
package br.com.uniao.controller;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class NavBean {
private String page;
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
@PostConstruct
public void init() {
this.page = "index"; // Ensure that default is been set.
}
public String doNav(){
return page;
}
}
Minha página conta:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./tema/padrao.xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:define name="centro">
<p:dialog modal="true" widgetVar="statusDialog" header="Status"
draggable="false" closable="false">
Aguarde...
<p:graphicImage value="/tema/imagens/ajax-loader.gif" />
</p:dialog>
<h:form prependId="false" id="formconta">
<center>
<p:panel header="Cadastrar nova Conta" style="margin-bottom:10px;">
<p:commandButton onstart="statusDialog.show();" oncomplete="novocon.show();" onsuccess="statusDialog.hide();" value="Nova" title="Clique para cadastrar nova conta" update="@parent,:novoconta" action="#{contaBean.prepareAddConta()}"/>
</p:panel>
</center>
<p:growl id="messages" autoUpdate="true" showDetail="true" sticky="false" life="8000" />
<p:dataTable widgetVar="contaTable" var="item" id="tabelaconta" value="#{contaBean.cachedConta}" filteredValue="#{contaBean.filteredConta}"
emptyMessage="Nenhum registro encontrado pelo critério" paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column id="Nome" filterBy="#{item.nomeEmpresa}"
headerText="Nome"
filterMatchMode="contains">
<h:outputLabel value="#{item.nomeEmpresa}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="E-mail"/>
</f:facet>
<h:outputText value="#{item.email}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Tel. Celular"/>
</f:facet>
<h:outputText value="#{item.telefoneCelular}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Tel. Empresa"/>
</f:facet>
<h:outputText value="#{item.telefoneEmpresa}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Saldo"/>
</f:facet>
<h:outputText value="#{item.saldo}">
<f:convertNumber maxFractionDigits="2"
groupingUsed="true"
currencySymbol="R$"
maxIntegerDigits="7"
type="currency"/>
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Ações"/>
</f:facet>
<p:commandButton value="Apagar" title="Clique para deletar registro da conta" update=":remove,@parent" icon="ui-icon-trash" oncomplete="removeconfirmation.show()">
<f:setPropertyActionListener target="#{contaBean.selectedConta}" value="#{item}"/>
</p:commandButton>
<p:commandButton onstart="statusDialog.show();" onsuccess="statusDialog.hide();" oncomplete="editacon.show();" title="Clique para alterar conta cadastrada" update="@parent,:editarconta" value="Alterar" action="#{contaBean.prepareEditConta()}">
<f:setPropertyActionListener target="#{contaBean.selectedConta}" value="#{item}"/>
</p:commandButton>
<p:commandButton onstart="statusDialog.show();" onsuccess="statusDialog.hide();" oncomplete="detcon.show();" title="Clique para detalhes da conta" update="@parent,:detalhesconta" value="Detalhes" action="#{contaBean.detalheFornecedor()}">
<f:setPropertyActionListener target="#{contaBean.selectedConta}" value="#{item}"/>
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<p:dialog id="remove" closable="false" resizable="false" widgetVar="removeconfirmation" header="Apagar Registro...." showEffect="puff" hideEffect="explode" height="50">
<h:form>
<h:outputText value="Deseja apagar o registro #{contaBean.selectedConta.nomeEmpresa}?" />
<p:commandButton value="Sim" actionListener="#{contaBean.removeConta()}"
update=":formconta" oncomplete="removeconfirmation.hide()"/>
<p:commandButton title="Clique para confirmar apagar o registro do fornecedor" update="@parent" value="Não" onclick="removeconfirmation.hide();" type="button" />
</h:form>
</p:dialog>
<p:dialog id="novoconta" appendToBody="true" header="Cadastro de nova Conta" closable="false" resizable="false" widgetVar="novocon" hideEffect="explode" showEffect="puff">
<h:form acceptcharset="ISO-8859-1" id="newconta" prependId="false">
<p:focus context="newconta"/>
<p:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<p:inputText size="50" id="nome" value="#{contaBean.selectedConta.nomeEmpresa}" title="Nome" />
<h:outputText value="Pessoa: " />
<p:selectOneRadio id="optionsn" value="#{contaBean.selectedConta.tipoPessoa}">
<f:selectItem itemLabel="Física" itemValue="true" />
<f:selectItem itemLabel="Jurídica" itemValue="false" />
</p:selectOneRadio>
<h:outputLabel value="Saldo:" for="saldo" />
<p:inputText size="50" id="saldo" value="#{contaBean.selectedConta.saldo}" title="Saldo" />
<h:outputLabel value="Email:" for="email" />
<p:inputText size="50" id="email" value="#{contaBean.selectedConta.email}" title="Email" />
<h:outputLabel value="Telefone Celular:" for="telefoneCelular" />
<p:inputMask mask="(999) 9999-9999" id="telefoneCelular" value="#{contaBean.selectedConta.telefoneCelular}" title="TelefoneCelular" />
<h:outputLabel value="Telefone Empresa:" for="telefoneEmpresa" />
<p:inputMask mask="(999) 9999-9999" id="telefoneEmpresa" value="#{contaBean.selectedConta.telefoneEmpresa}" title="TelefoneEmpresa" />
<h:outputLabel value="Rua:" for="rua" />
<p:inputText size="50" id="rua" value="#{contaBean.selectedEndereco.rua}" title="rua" />
<h:outputLabel value="Número:" for="numero" />
<p:inputText size="50" id="numero" value="#{contaBean.selectedEndereco.numero}" title="numero" />
<h:outputLabel value="Complemento:" for="complemento" />
<p:inputText size="50" id="complemento" value="#{contaBean.selectedEndereco.complemento}" title="complemento" />
<h:outputLabel value="Bairro:" for="bairro" />
<p:inputText size="50" id="bairro" value="#{contaBean.selectedEndereco.bairro}" title="bairro" />
<h:outputLabel value="Local:" />
<p:panelGrid columns="2">
<p:selectOneMenu id="som-ufs"
value="#{contaBean.selectedEndereco.estado}"
style="width: 75px;">
<f:selectItem itemLabel="Sel. Estado"
itemValue="Nenhum" />
<f:selectItems value="#{contaBean.UFs}" />
<p:ajax update="som-cidades"
listener="#{contaBean.changeUF()}" />
</p:selectOneMenu>
<p:selectOneMenu id="som-cidades"
value="#{contaBean.selectedEndereco.cidade}"
style="width: 165px;">
<f:selectItem itemLabel="Selecione Cidade"
itemValue="Nenhum" />
<f:selectItems value="#{contaBean.cidades}"/>
</p:selectOneMenu>
</p:panelGrid>
<h:outputLabel value="Cep:" for="cep" />
<p:inputMask size="50" mask="99999-999" id="cep" value="#{contaBean.selectedEndereco.cep}" title="cep" />
</p:panelGrid>
<center>
<p:commandButton title="Clique para confirmar inserção do registro da conta"
value="Salvar" oncomplete="novocon.hide();"
action="#{contaBean.finishAddConta()}"
update=":formconta,@parent"/>
<p:spacer width="10"/>
<p:commandButton title="Clique para cancelar inserção do registro da conta" update="@parent" value="Cancelar" onclick="novocon.hide();" type="button" />
</center>
</h:form>
</p:dialog>
<p:dialog id="detalhesconta" appendToBody="true" header="Detalhes da Conta" closable="false" resizable="false" widgetVar="detcon" hideEffect="explode" showEffect="puff">
<h:form acceptcharset="ISO-8859-1" id="detailconta" prependId="false">
<p:panelGrid columns="2">
<h:outputText value="Nome:"/>
<h:outputText value="#{contaBean.selectedConta.nomeEmpresa}" title="Nome"/>
<h:outputText value="Pessoa: " />
<p:selectOneRadio id="optionsd" value="#{contaBean.selectedConta.tipoPessoa}">
<f:selectItem itemLabel="Física" itemValue="true" />
<f:selectItem itemLabel="Jurídica" itemValue="false" />
</p:selectOneRadio>
<h:outputLabel value="Saldo:"/>
<h:outputText value="#{contaBean.selectedConta.saldo}" title="Saldo">
<f:convertNumber maxFractionDigits="2"
groupingUsed="true"
currencySymbol="R$"
maxIntegerDigits="7"
type="currency"/>
</h:outputText>
<h:outputText value="Telefone Celular:"/>
<h:outputText value="#{contaBean.selectedConta.telefoneCelular}" title="TelefoneCelular"/>
<h:outputText value="Telefone Empresa:"/>
<h:outputText value="#{contaBean.selectedConta.telefoneEmpresa}" title="TelefoneEmpresa"/>
<h:outputText value="Email:"/>
<h:outputText value="#{contaBean.selectedConta.email}" title="Email"/>
<h:outputText value="Rua:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.rua}" title="Rua"/>
<h:outputText value="Numero:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.numero}" title="Numero"/>
<h:outputText value="Complemento:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.complemento}" title="Complemento"/>
<h:outputText value="Bairro:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.bairro}" title="Bairro"/>
<h:outputText value="Cidade:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.cidade}" title="Cidade"/>
<h:outputText value="Estado:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.estado}" title="Estado"/>
<h:outputText value="Cep:"/>
<h:outputText value="#{contaBean.selectedConta.endereco.cep}" title="Cep"/>
</p:panelGrid>
<center>
<p:commandButton title="Clique para sair" update="@parent" value="Sair" onclick="detcon.hide();" type="button" />
</center>
</h:form>
</p:dialog>
<p:dialog id="editarconta" appendToBody="true" header="Editar Conta" closable="false" resizable="false" widgetVar="editacon" hideEffect="explode" showEffect="puff">
<h:form acceptcharset="ISO-8859-1" id="editconta" prependId="false">
<p:focus context="editconta"/>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="enome" />
<p:inputText size="50" id="enome" value="#{contaBean.selectedConta.nomeEmpresa}" title="Nome" />
<h:outputText value="Pessoa: " />
<p:selectOneRadio id="optionse" value="#{contaBean.selectedConta.tipoPessoa}">
<f:selectItem itemLabel="Física" itemValue="true" />
<f:selectItem itemLabel="Jurídica" itemValue="false" />
</p:selectOneRadio>
<h:outputLabel value="Saldo:" for="esaldo" />
<p:inputText size="50" id="esaldo" value="#{contaBean.selectedConta.saldo}" title="Saldo" />
<h:outputLabel value="Email:" for="eemail" />
<p:inputText size="50" id="eemail" value="#{contaBean.selectedConta.email}" title="Email" />
<h:outputLabel value="Telefone Celular:" for="etelefoneCelular" />
<p:inputMask mask="(999) 9999-9999" id="etelefoneCelular" value="#{contaBean.selectedConta.telefoneCelular}" title="TelefoneCelular" />
<h:outputLabel value="Telefone Empresa:" for="etelefoneEmpresa" />
<p:inputMask mask="(999) 9999-9999" id="etelefoneEmpresa" value="#{contaBean.selectedConta.telefoneEmpresa}" title="TelefoneEmpresa" />
<h:outputLabel value="Rua:" for="erua" />
<p:inputText size="50" id="erua" value="#{contaBean.selectedConta.endereco.rua}" title="rua" />
<h:outputLabel value="Número:" for="enumero" />
<p:inputText size="50" id="enumero" value="#{contaBean.selectedConta.endereco.numero}" title="numero" />
<h:outputLabel value="Complemento:" for="ecomplemento" />
<p:inputText size="50" id="ecomplemento" value="#{contaBean.selectedConta.endereco.complemento}" title="complemento" />
<h:outputLabel value="Bairro:" for="ebairro" />
<p:inputText size="50" id="ebairro" value="#{contaBean.selectedConta.endereco.bairro}" title="bairro" />
<h:outputLabel value="Local:" />
<p:panelGrid columns="2">
<p:selectOneMenu id="esom-ufs"
value="#{contaBean.selectedConta.endereco.estado}"
style="width: 75px;">
<f:selectItem itemLabel="Sel. Estado"
itemValue="Nenhum" />
<f:selectItems value="#{contaBean.UFs}" />
<p:ajax update="esom-cidades"
listener="#{contaBean.changeUfAltera()}" />
</p:selectOneMenu>
<p:selectOneMenu id="esom-cidades"
value="#{contaBean.selectedConta.endereco.cidade}"
style="width: 165px;">
<f:selectItem itemLabel="Selecione Cidade"
itemValue="Nenhum" />
<f:selectItems value="#{contaBean.cidades}"/>
</p:selectOneMenu>
</p:panelGrid>
<h:outputLabel value="Cep:" for="ecep" />
<p:inputMask size="50" mask="99999-999" id="ecep" value="#{contaBean.selectedConta.endereco.cep}" title="cep" />
</h:panelGrid>
<center>
<p:commandButton title="Clique para confirmar alteração do registro da conta" value="Salvar" oncomplete="editacon.hide();" action="#{contaBean.finishEditConta()}" update=":formconta,@parent"/>
<p:spacer width="10"/>
<p:commandButton title="Clique para cancelar alteração do registro da conta" update="@parent" value="Cancelar" onclick="editacon.hide();" type="button" />
</center>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
Do jeito que está a página recarrega inteira.
Qualquer ajuda será bem vinda
Agradeço desde já!!