Problema com validação de data JSF 2[RESOLVIDO]

Pessoal,

Eu tenho um modal que exibe uma tabela com dois campos do tipo Date. Esses dois campos um deles é habilitado para edição e outro não, no campo onde a edição é habilitada estou usando o componente de validação que é o “convertDateTime”, porém estou com um problema no comportamento do validador, quando edito a data, colocando uma data inválida é disparada a mensagem de erro, porém quando eu realizo o submit dessa tabela, o valor que vai para o bean é a data correta e não a data que foi informada, no caso a data incorreta.

Parece que quando a validação falha, o valor não é setado no campo, só é setado quando a data correta é informada, teria como setar este valor incorreto no campo, porque preciso travar o fluxo da aplicação se a data visivel na tela estiver incorreta.

`<p:dialog id=“modalRegistroRecesso” header="Registro de Recesso"
widgetVar=“widgetvarRegistroRecesso” draggable="true"
resizable=“false” closable=“false” modal=“true” width=“630”>

			<h:panelGroup>
				<br />
				<p:dataTable id="tableRegRecessoBotao" var="recessoBotao"
					value="#{parametroEstagiarioMB.visao.listaOcorrenciaBotaoRecesso}"
					styleClass="hide-column-names" rowIndexVar="rowIndex">

					<p:column style="width:98px;">
						<h:outputLabel value="#{rowIndex+1}º Recesso de " style="color: #0039BA" />
						<p:inputText id="diaRecParamBotao" value="#{recessoBotao.diasRecesso}" size="2">
						    <p:ajax event="blur" update="@this" global="false" />
						</p:inputText>
						
						<h:outputLabel value="dia(s) começando em " style="color: #0039BA" />
						<h:inputText id="dtInicioRecessoBtn"  value="#{recessoBotao.dtInicioOcorrencia}" size="10" onkeypress="mascara(this,datas)">
						     <f:convertDateTime for="dtInicioRecessoBtn" pattern="dd/MM/yyyy" locale="pt_BR" />
						    <p:ajax event="blur" update="@this tableRegRecessoBotao :form_dialogo_mensagem"  global="false" 
							        listener="#{parametroEstagiarioMB.listenerRecalculaData(rowIndex,2)}"/> 
						</h:inputText>
						
						<h:outputLabel value=" e finalizando em " style="color: #0039BA; margin-left: 5px;"/>
						<h:outputLabel id="dtLblBotao" value="#{recessoBotao.dtFimOcorrencia}"	style="color: #0039BA; margin-left: 5px;" >
						   <f:convertDateTime for="dtLblBotao" pattern="dd/MM/yyyy" locale="pt_BR"/>
						</h:outputLabel>
					</p:column>
					
					<p:column style="width:1%;">
					  <h:selectBooleanCheckbox value="#{recessoBotao.checked}">
					    <p:ajax update="@this" global="false"/>
					  </h:selectBooleanCheckbox>
					</p:column>
					
				</p:dataTable>
			</h:panelGroup>			

			<div align="left">
				
				<p:commandLink styleClass="btnLaranja marginTop"
					ignoreAutoUpdate="true" global="false" action="#{parametroEstagiarioMB.visao.incluirRecesso()}" update="tableRegRecessoBotao">
					<span>Novo</span>
				</p:commandLink>
				
				<p:commandLink id="commandLinkRecessoBotao"
				               styleClass="btnLaranja marginTop" 
				               action="#{parametroEstagiarioMB.salvarRecesso}"
					           update="schedule :form_dialogo_mensagem"  global="false" process="@this">
					<span>Confirmar</span>
				</p:commandLink>

				<p:commandLink styleClass="btnLaranja marginTop"
								id="btnCancelarRecesso"
								oncomplete="PF('widgetvarRegistroRecesso').hide();"
								ignoreAutoUpdate="true" global="false" actionListener="#{parametroEstagiarioMB.cancelar}">
								<f:setPropertyActionListener
									target="#{parametroEstagiarioMB.visao.exibirModal}"
									value="#{false}" />									
								<span>Cancelar</span>
				</p:commandLink>
			</div>

			<div align="right" style="float: right;">					
				<p:commandLink styleClass="btnLaranja marginTop"
				               id="btnVerRegras"
				               oncomplete="PF('widgetvarModalRegras').show();"
				               ignoreAutoUpdate="true" global="false">
				               <span>Regras</span>
				</p:commandLink>
			</div>
		</p:dialog>

`

Up.

Ninguém nunca passou por problema parecido ? Se alguém souber da um help aí

:wink:

tenta isso: retira a chamada ajax e submete o form pelo botão mesmo

Na verdade, descobri que esse problema de manter o valor antigo no objeto era um bug da versão, após a falha de validação o framework mantinha o valor que veio inicialmente.

Minha alternativa foi, criar um converter específico para tratamento de data, deixei a
chamada ajax, pois preciso desse request para atualizar a tabela caso a data seja válida, caso a data seja inválida o conversor retorna nulo e aí sim limpa o valor do objeto, quando o usuário tentar submeter receberá um erro de data invalida.

Não foi o melhor caminho, tinha a opção de reescrever o fonte do framework mas não seria uma boa ideia, podendo quebrar outras partes do sistema.

Abs