صحة السبات: كيف تتعامل مع التمرير؟ (28/14/2009 يصبح 28/2/2010)

StackOverflow https://stackoverflow.com/questions/4400291

  •  25-09-2019
  •  | 
  •  

سؤال

أنا أستخدم مدقق السبات للتحقق من صحة النماذج الخاصة بي. أواجه "المشكلة" التي يصبح التاسع من الشهر الرابع عشر هو الشهر الثاني في العام المقبل. (مجرد مثال على السيناريو).

كنت أتساءل كيف يمكنني منع التحويل الافتراضي وأظهر بدلاً من ذلك رسالة خطأ مخصصة لها.

هل يعرف أي شخص أيضًا كيف يمكنني عرض رسالة معنية إذا كان المحرر المخصص الخاص بي يلقي بعملية غير قانونية؟

@InitBinder
    public void initBinder(WebDataBinder binder) {
        CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true);
        binder.registerCustomEditor(Date.class, editor);
    }

لقد قمت بإجراء تسجيل مخصص لأن Spring-Portlet-MVC واجهت بعض المشكلات مع الربط.

هل كانت مفيدة؟

المحلول

يتم التحكم في هذا السلوك بواسطة DateFormat.setLenient() وليس له علاقة بالتحقق (مع setLentient(false) ينتج خطأ غير متطابق في مرحلة الربط):

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
CustomDateEditor editor = new CustomDateEditor(df, true); 
binder.registerCustomEditor(Date.class, editor); 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top