ในโครงการที่ใช้ Framework SpringMVC คุณมักจะพบข้อมูลที่มีชนิดข้อมูลเป็นวันที่จำนวนเต็มสองเท่า ฯลฯ จะต้องผูกพันกับเอนทิตีของคอนโทรลเลอร์หรือคอนโทรลเลอร์ต้องยอมรับข้อมูลนี้ หากประเภทข้อมูลประเภทนี้ไม่ได้ประมวลผลมันจะไม่ถูกผูกไว้
ที่นี่เราสามารถใช้คำอธิบายประกอบ @InitBinder เพื่อแก้ปัญหาเหล่านี้เพื่อให้ SpringMVC จะลงทะเบียนบรรณาธิการเหล่านี้ก่อนที่จะเชื่อมโยงแบบฟอร์ม โดยทั่วไปวิธีการเหล่านี้จะรวมอยู่ใน basecontroller คอนโทรลเลอร์ที่ต้องดำเนินการแปลงดังกล่าวจำเป็นต้องได้รับการสืบทอด basecontroller เท่านั้น ในความเป็นจริงฤดูใบไม้ผลิมีคลาสการใช้งานมากมายเช่น CustomDateEditor, CustomBooleanEditor, CustomNumberEditor และอื่น ๆ ซึ่งโดยทั่วไปเพียงพอ
การสาธิตมีดังนี้:
Basecontroller ระดับสาธารณะ {@InitBinder Void InitBinder (WebDatabinder Binder) {Binder.RegisterCustomEditor (วันที่, คลาส, myDateEditor ใหม่ ()); Binder.registerCustomEditor (double.class, ใหม่ doubleeditor ()); Binder.RegisterCustomEditor (Integer.class, IntegerEditor ใหม่ ()); } คลาสส่วนตัว MyDateEditor ขยาย PertyEditorSupport {@Override โมฆะสาธารณะ setAstatext (ข้อความสตริง) พ่น unglegalArgumentException {รูปแบบ SimpledateFormat = ใหม่ SimpleDateFormat ("YYYY-MM-DD HH: MM: SS"); วันที่วันที่ = null; ลอง {date = format.parse (ข้อความ); } catch (parseexception e) {format = new SimpledateFormat ("yyyy-mm-dd"); ลอง {date = format.parse (ข้อความ); } catch (parseexception e1) {}} setValue (วันที่); }} คลาสสาธารณะ DoubleEditor ขยาย PropertiesEditor {@Override โมฆะสาธารณะ setAstatext (ข้อความสตริง) พ่น unglegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (double.parsedouble (ข้อความ)); } @Override สตริงสาธารณะ getastext () {return getValue (). toString (); }} คลาสสาธารณะ IntegerEditor ขยาย PropertiesEditor {@Override โมฆะสาธารณะ setAstatext (ข้อความสตริง) พ่น unglegalArgumentException {ถ้า (text == null || text.equals ("")) {text = "0"; } setValue (integer.parseint (ข้อความ)); } @Override สตริงสาธารณะ getastext () {return getValue (). toString (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น