عند استخدام springMVC ، غالبًا ما تواجه تحويلات بين سلاسل التاريخ في النموذج ونوع تاريخ Javabean ، في حين أن SpringMVC لا يدعم التحويلات بهذا التنسيق افتراضيًا ، لذلك تحتاج إلى تكوين البيانات وتخصيصها يدويًا لحل هذه المشكلة.
استخدم SPRINGMVC annotationnitbinder وفئة WebDatebinder من Spring للعمل في وحدات التحكم التي تتطلب تحويل التاريخ.
يتم استخدام WebDatabinder لربط معلمات الطلب لمحرر الخصائص المحدد. نظرًا لأن القيمة التي تم تمريرها إلى وحدة التحكم في المقدمة تكون من نوع السلسلة ، عند تعيين القيمة في النموذج ، إذا كانت خاصية المجموعة كائنًا ، فسيجد Spring المحرر المقابل للتحويل ، ثم تعيينه.
الرمز كما يلي:
@initBinder public void initbinder (WebDatabinder Binder) {simpleDateFormat dateFormat = new SimplEdateFormat ("Yyyy-MM-DD") ؛ DateFormat.setLenient (false) ؛ Binder.registerCustomeditor (Date.class ، customDateEditor جديد (DateFormat ، True)) ؛ }تحتاج إلى إضافة ملف التكوين في springmvc
<!-التسجيل المحلل-> <bean> <property name = "messageConverters"> <list> <ref bean = "stringhttpmessageconverter"/> </list> </propert
تغيير الكتابة
<mvc: تعرض التعليق التوضيحي> <mvc: message-converters> <bean> <constructor-arg value = "utf-8"/> </bean> </mvc: message-converters> </mvc: enoet-divening>
يوسع:
ستقوم Spring MVC بتسجيل هؤلاء المحررين قبل ربط النموذج. يوفر Spring نفسه عددًا كبيرًا من فئات التنفيذ ، مثل CustomDateEditor و CustomBooleAneditor و CustomNumbereditor ، وما إلى ذلك ، والتي هي في الأساس بما فيه الكفاية.
استدعاء طريقة registercustomeditor من webdatabinder عند استخدام
RegisterCustomEditor Code Source Code:
Public Void RecordCustomeditor (Class <؟> requiredType ، propertyeditor propertyeditor) {getPropertyEditorRegistry (). RecordCustomEditor (مطلوب ، propertyeditor) ؛} المعلمة الأولى المطلوبة هي النوع الذي يجب تحويله.
المعلمة الثانية PropertyEditor هو محرر الممتلكات ، وهو واجهة. الأمثلة المذكورة أعلاه مثل CustomDateEditor ، جميعها ترث فئة PropertyedItorSupport التي تنفذ هذه الواجهة.
لا يمكننا أيضًا استخدام فصول المحرر هذه التي تأتي معهم.
يمكننا بناء أنفسنا:
استيراد org.springframework.beans.propertyEditors.PropertiesEditor ؛ فئة doubleeditor العامة يمتد propertyeditorsupport {Override public void setastext (text string) remalialArgumentException {if (text == null || text.equals ("")) {text = "0" 0 " } setValue (double.parsedouble (text)) ؛ } Override public string getastext () {return getValue (). toString () ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.