Pessoal,
Estou com um pequeno problema ao tentar atualizar alguns campos da minha tabela, tenho dois campos um onde é renderizado um numero inteiro e outro que renderiza uma data.
Essa tabela ela deve ter um checkbox para o usuário selecionar a linha que desejar, incialmente usei o componente de seleção múltipla do primefaces(selectionMode=“multiple”), só que ao debugar verifiquei que os dados que estavam sendo passados eram os valores antigos, coloquei o componente de ajax dentro dos meus campos e não funcionou.
Tirei os componentes de seleção múltipla da tabela e não funcionou, ao realizar o submit da tabela peguei no meu bean a tabela pelo seu ID só que quando uso o método getValues() do componentes os valores continuam sendo os antigos.
Abaixo segue o trecho da minha página e do meu bean.
Página:
`
<p:dialog id=“modalNovosParametrosRecesso” header="Salvar Novos Parâmetros de Estagiário"
widgetVar="widgetvarNovoParametro"
draggable=“true” resizable="false"
closable=“false” modal=“true” width=“630”>
<h:outputText styleClass="modalRecessoAuto" value="#{msg.MN064}" escape="false" />
<br />
<h:panelGroup>
<br />
<p:dataTable id="tableRegRecessoAuto" var="recessoAuto"
value="#{parametroEstagiarioMB.visao.listaOcorrenciaRegistroRecesso}"
styleClass="hide-column-names" rowIndexVar="rowIndex" >
<p:column style="width:98px;">
<h:outputLabel value="#{rowIndex+1}º Recesso de " style="color: #0039BA" />
<p:inputText value="#{recessoAuto.diasRecesso}" size="2">
<p:ajax event="blur" update="@this" ignoreAutoUpdate="true" global="false" />
</p:inputText>
<h:outputLabel value="dia(s) começando em " style="color: #0039BA" />
<p:inputMask value="#{recessoAuto.dtInicioOcorrencia}" mask="99/99/9999" size="10">
<f:convertDateTime pattern="dd/MM/yyyy" locale="pt_BR" />
<p:ajax event="blur" update="@this" ignoreAutoUpdate="true" global="false"/>
</p:inputMask>
<h:outputLabel value=" e finalizando em " style="color: #0039BA; margin-left: 5px;"/>
<h:outputLabel id="dtLbl1" value="#{recessoAuto.dtFimOcorrencia}" style="color: #0039BA; margin-left: 5px;" >
<f:convertDateTime for="dtLbl1" pattern="dd/MM/yyyy" locale="pt_BR"/>
</h:outputLabel>
</p:column>
</p:dataTable>
</h:panelGroup>
<div style="padding-left: 170px;">
<p:commandLink id="commandLinkRecessoAuto"
styleClass="btnLaranja marginTop"
action="#{parametroEstagiarioMB.salvarRecessoPrimeiraParametrizacao}"
update="schedule :form_dialogo_mensagem" ignoreAutoUpdate="true" global="false">
<span>Confirmar</span>
</p:commandLink>
<p:commandLink styleClass="btnLaranja marginTop"
id="btnCancelarRecessoAuto"
oncomplete="PF('widgetvarNovoParametro').hide();"
ignoreAutoUpdate="true" global="false" actionListener="#{parametroEstagiarioMB.cancelar}">
<f:setPropertyActionListener
target="#{parametroEstagiarioMB.visao.exibirModal}"
value="#{false}" />
<span>Cancelar</span>
</p:commandLink>
<p:commandLink styleClass="btnLaranja marginTop"
id="btnVerRegrasAuto"
oncomplete="PF('widgetvarModalRegras').show();"
ignoreAutoUpdate="true" global="false">
<span>Regras</span>
</p:commandLink>
</div>
</p:dialog>
`
`
public void salvarRecessoPrimeiraParametrizacao(){
int count = 0;
final DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
.findComponent(":frmFiltro:tableRegRecessoAuto");
List<OcorrenciaPonto> teste = new ArrayList<OcorrenciaPonto>();
for(OcorrenciaPonto c : (List<OcorrenciaPonto>) dataTable.getValue()){
teste.add(c);
count+=1;
}
if(!visao.getListaRecessoParametrizacao().isEmpty()){
for(OcorrenciaPonto ocorrencia : visao.getListaRecessoParametrizacao()){
count += 1;
if(DataUtil.verificarSeDataEhIgual(ocorrencia.getDtInicioOcorrencia(), ocorrencia.getDtFimOcorrencia()) ||
DataUtil.verificarSeDataEhMaior(ocorrencia.getDtInicioOcorrencia(), ocorrencia.getDtFimOcorrencia()) ||
DataUtil.validarData(new SimpleDateFormat().format(ocorrencia.getDtInicioOcorrencia())) == null){
visao.getEntidade().getEstagiario().adicionarMensagem("MN052");
super.adicionaListaMensagemDeErro(visao.getEntidade().getEstagiario().getMensagens());
RequestContext.getCurrentInstance().update(PF_MODAL_MSG_ERRO);
break;
}else{
if(visao.getListaOcorrenciaRegistroRecesso().get(count).getDiasRecesso() != ocorrencia.getDiasRecesso()){
RequestContext.getCurrentInstance().execute(PF_RECESSO_AUTO);
}
}
}
}else{
RequestContext.getCurrentInstance().execute(PF_RECESSO_CHK);
}
}
`Aqui quando eu pego o getValues() os valores permanecem os antigos, antes eu estava fazendo de outra maneira, utilizando ajax e selecionando o checkbox(que retirei) e na lista onde os valores seriam persistidos ao marcar o check verificando se foram atualizados, porém tbm não rolou.