Il problema che sto avendo è con il calendario PrimesFaces 3.4.1. Quando si utilizza il selettore di date popup attivato tramite il pulsante o sul campo di input, è possibile selezionare solo date valide che funzionano bene, giorni felici!Il calendario PrimeFaces accetta date non valide come input
I problemi viene quando si aggiunge manualmente una data nel campo di inserimento, se si aggiunge una data non valida componente primefaces calendario prende il migliore congettura a convertire questo in una data valida e poi inviarlo, il che significa che la validazione di back-end è un no go Alcune traduzioni interessanti sotto:
- 30/02/2012 diventa 2/6/2014
- 322/05/2012 diventa 5/10/2038
- 01/14/2012 diventa 2012/04/01
Per ricreare questa follia dai un'occhiata allo PrimeFaces Calendar Showcase.
Ho visto la soluzione in giro usando l'attributo readOnlyInput='true'
ma sembra solo che le lettere non vengano immesse nel campo, non il numero o le barre. Di seguito è riportato un esempio di calendario ho implementato:
<p:calendar id="fldDateOfBirth"
value="#{pc_CreateUser.user.dateOfBirth}"
binding="#{pc_CreateUser.dobComp}"
navigator="true"
pattern="dd/MM/yyyy"
maxlength="10"
yearRange="-100"
validator="#{pc_CreateUser.validateDOB}"
title="#{msg.user_date_format_default_tip}"
converterMessage="#{msg.user_error_dob_invalid}"
readOnlyInput="true"
showOn="button" />
soluzione saggia Sono aperto a qualsiasi suggerimento:
- questo è un problemi comuni a primefaces? C'è un trucco che posso usare per risolvere ?
- Posso utilizzare JavaScript per convalidare la data prima che sia inviata o per bloccare tutto l'input dell'utente interamente?
- Qualsiasi altra cosa a cui non avessi pensato!
Grazie in anticipo, questo mi ha causato problemi per settimane!
Questo ha funzionato a meraviglia! Grazie per la soluzione e la tua spiegazione, molto apprezzata. – JonnyIrving
Prego. – BalusC
Se si utilizza la versione precedente di primefaces utilizzando questo convertDateTime, la conversione restituisce null e verranno visualizzati errori javascript. (getDate == null). Se è possibile effettuare l'aggiornamento a PF 4, purtroppo non posso e sto cercando alternative :) – VeenarM