error Data durante la conversione del tempo con f: convertDateTime
-
26-09-2019 - |
Domanda
Ho problemi con f: convertDateTime, che sembra utilizzare il messaggio di errore javax.faces.converter.DateTimeConverter.DATE_detail quando converto tempo (vale a dire che si dovrebbe usare javax.faces .converter.DateTimeConverter.TIME_detail ).
Il problema, sto cercando di indovinare, è che io uso un modello, e quindi non sa se si tratta di una data o un momento che si sta legando per convertire. Questo è quello che sto cercando ( "timePattern" è "hh.mm"):
<f:convertDateTime type="time" pattern="#{timePattern}" />
Anche se è specificato type = "tempo", si utilizza ancora il DATE_detail messaggio di errore. Questo è un bug o è la mia ipotesi che dovrebbe utilizzare il TIME_detail messaggio di errore sbagliato, e devo creare il mio convertitore?
Soluzione
Purtroppo, questo è anche ciò che il DateTimeConverter
javadoc sta dicendo. Ecco un estratto di rilevanza:
Se è stato specificato un
pattern
, la sua sintassi deve essere conforme alle norme specificate daljava.text.SimpleDateFormat
. Tale modello viene utilizzato per analizzare, e iltype
,dateStyle
, e le proprietàtimeStyle
verrà ignorata.
Devo però ammettere che i ragazzi JSF hanno dovuto specificarlo esplicitamente nel f:convertDateTime
pdldoc pure. Non è evidente da lì. Mi piacerebbe segnalare un problema per i ragazzi JSF per farli chiarire questa parte.
Per farlo funzionare, la soluzione migliore è o non basandosi sul modello, ma su type
, dateStyle
e timeStyle
(e il locale), invece, o di creare un convertitore di tempo data personalizzata che extends DateTimeConverter
e sostituisce i metodi di conseguenza.
Altri suggerimenti
Hai anche definire javax.faces.converter.DateTimeConverter.TIME nei tuoi messaggi.
Guardate qui: http://www.icefaces.org/JForum/ messaggi / list / 16119.page un post prima all'ultima.