Comparação entre datas com JSF e Primefaces

4 respostas
java
FelipeCampos1

Preciso fazer uma comparação entre datas, onde a data fim precisa obrigatoriamente ser maior que a data inicio.
Estou usando o componente Calendar primefaces. É possível fazer essa validação no front-end?

Esse é o meu código:

<p:outputLabel value="#{bundle.CreateLembreteLabel_lbeDatahorafrequenciainicio}" for=“lbeDatahorafrequenciainicio” />

<p:calendar id=“lbeDatahorafrequenciainicio” pattern=“dd/MM/yyyy HH:mm” locale=“pt”

value="#{lembreteController.selected.lbeDatahorafrequenciainicio}" mindate="#{pessoaController.maxDate}"

title="#{bundle.EditLembreteTitle_lbeDatahorafrequenciainicio}"

required=“true” requiredMessage="#{bundle.EditLembreteRequiredMessage_lbeDatahorafrequenciainicio}" mask=“99/99/9999 99:99” showOn=“button”/>
<p:outputLabel value="#{bundle.CreateLembreteLabel_lbeDatahorafrequenciafim}" for="lbeDatahorafrequenciafim" />
                    <p:calendar id="lbeDatahorafrequenciafim" pattern="dd/MM/yyyy HH:mm" locale="pt"
                                value="#{lembreteController.selected.lbeDatahorafrequenciafim}" mindate="#{pessoaController.maxDate}" 
                                title="#{bundle.EditLembreteTitle_lbeDatahorafrequenciafim}" 
                                required="true" requiredMessage="#{bundle.EditLembreteRequiredMessage_lbeDatahorafrequenciafim}" mask="99/99/9999 99:99" showOn="button"/>

4 Respostas

thimor

Dá para fazer no frontend eh so usar javascript e no onchange do input, voce pega os dois valores e compara. e tambem da para fazer validacao usando o ajax do componente do primefaces, chamando um metodo do servidor. Mas faz tanto tempo que nao faco mais nada em jsf + primefaces que nao lembro mais.

FelipeCampos1

Obrigado pela ajuda, mas poderia ser um pouco mais detalhado como fazer essa validação usando o primefaces?

thimor

eu vou ter que procurar aqui nos projetos antigos, mas tem como voce colocar um ajax para ler um evendo com o primefaces. <p:ajax***/> ai voce colocar no evento onChange do campo. Ai essa tag, voce pode colocar um metodo no bean do servidor. ai voce tem acesso aos valores de data, e devolve a resposta. o fluxo é assim, mas preciso achar um codigo antigo aqui em que fazia esse tipo de validacao.

FelipeCampos1

Cara se tu conseguir te agradeço muito, porque vai me ajudar demais, to empacado nessa validação a alguns dias e preciso concluir para entregar o projeto.

Criado 7 de agosto de 2020
Ultima resposta 12 de ago. de 2020
Respostas 4
Participantes 2