خطأ في التاريخ عند تحويل الوقت مع F: ConvertDateTime
-
26-09-2019 - |
سؤال
لدي مشكلة في F: ConvertDateTime ، ويبدو أنها تستخدم رسالة الخطأ javax.faces.converter.datetimeconverter.date_detail عندما أقوم بتحويل الوقت (أي يجب استخدامه javax.faces.converter.datetimeconverter.time_detail).
المشكلة ، كما أعتقد ، هي أنني أستخدم نمطًا ، وبالتالي لا يعرف ما إذا كان تاريخًا أو وقتًا يرتبط بتحويله. هذا ما أحاوله ("tmepattern" هو "hh.mm"):
<f:convertDateTime type="time" pattern="#{timePattern}" />
على الرغم من أن النوع = "الوقت" محدد ، إلا أنه لا يزال يستخدم Date_detail رسالة خطأ. هل هذا خطأ أم هو افتراض أنه يجب أن يستخدم time_detail رسالة خطأ خاطئة ، وعلي أن أقوم بإنشاء محول خاص بي؟
المحلول
لسوء الحظ ، هذا أيضًا ما DateTimeConverter
جافادوك يقول. إليك مقتطف من الأهمية:
اذا كان
pattern
تم تحديده ، يجب أن يتوافق بناء الجملة مع القواعد المحددة بواسطةjava.text.SimpleDateFormat
. سيتم استخدام مثل هذا النمط لتحليل ، و الtype
,dateStyle
, ، وtimeStyle
سيتم تجاهل الخصائص.
ومع ذلك ، يجب أن أعترف أن الأولاد JSF كان عليهم تحديده بشكل صريح في f:convertDateTime
PDLDOC كذلك. ليس من الواضح من هناك. أود أن أبلغ عن مشكلة لأولاد JSF لحملهم على توضيح هذا الجزء.
للحصول على العمل ، أفضل رهان إما هو عدم الاعتماد على النمط ، ولكن على type
, dateStyle
و timeStyle
(والمكان) بدلاً من ذلك ، أو قم بإنشاء محول وقت مخصص للتاريخ الذي extends DateTimeConverter
ويتجاوز الأساليب وفقًا لذلك.
نصائح أخرى
عليك أيضًا تحديد javax.faces.converter.dateTimeConverter.time في رسائلك.
انظر هنا: http://www.icefaces.org/jforum/posts/list/16119.page منشور واحد قبل الماضي.