Date d'erreur lors de la conversion du temps avec f: convertDateTime
-
26-09-2019 - |
Question
J'ai un problème f: convertDateTime, qu'il semble utiliser le message d'erreur javax.faces.converter.DateTimeConverter.DATE_detail quand je convertir le temps (il doit utiliser javax.faces .converter.DateTimeConverter.TIME_detail ).
La question, je suppose, est que j'utilise un modèle, et donc il ne sait pas si elle est une date ou une heure qu'il est attachant à convertir. Voilà ce que je suis en train ( "timePattern" est "hh.mm"):
<f:convertDateTime type="time" pattern="#{timePattern}" />
Même si type = "temps" est spécifié, il utilise toujours le DATE_detail message d'erreur. Est-ce un bug ou est mon hypothèse selon laquelle il devrait utiliser le TIME_detail message d'erreur mal, et je dois créer mon propre convertisseur?
La solution
Malheureusement, c'est aussi ce que le DateTimeConverter
javadoc est dit. Voici un extrait de pertinence:
Si un
pattern
a été spécifié, sa syntaxe doit être conforme aux règles définies parjava.text.SimpleDateFormat
. Un tel modèle sera utilisé pour analyser, et letype
,dateStyle
et propriétéstimeStyle
seront ignorées.
Je dois cependant admettre que les garçons JSF devaient préciser explicitement dans la f:convertDateTime
pdldoc aussi. Il est pas évident à partir de là. Je signaler un problème aux garçons JSF pour les amener à clarifier cette partie.
Pour que cela fonctionne, votre meilleur pari est soit de ne pas compter sur le motif, mais type
, dateStyle
et timeStyle
(et les paramètres régionaux) à la place, ou créer un convertisseur de temps de date personnalisé qui extends DateTimeConverter
et bloque les méthodes en conséquence.
Autres conseils
Vous devez également définir javax.faces.converter.DateTimeConverter.TIME dans vos messages.
Regardez ici: http://www.icefaces.org/JForum/ messages / liste / 16119.page un poste avant dernier.