Di SpringMVC, jenis seperti tanggal, ganda didefinisikan dalam kacang. Jika tidak ada pemrosesan yang dilakukan, tanggal dan ganda tidak dapat terikat.
Solusinya adalah dengan menggunakan tag @Initbinder yang disediakan oleh Spring MVC
Dalam proyek saya, saya menambahkan metode initbinder di basecontroller dan menggunakan anotasi anotasi @initbinder. Kemudian Spring MVC akan mendaftarkan editor ini sebelum mengikat formulir. Tentu saja, jika Anda tidak repot -repot, Anda juga dapat menulisnya secara terpisah di setiap pengontrol Anda. Pengontrol yang tersisa mewarisi kelas ini. Spring sendiri menyediakan sejumlah besar kelas implementasi, seperti CustomDateEditor, CustomBooleanEditor, CustomNumberEditor, dll., Yang pada dasarnya cukup.
Tentu saja, kami juga tidak dapat menggunakan kelas editor ini yang datang dengan kami sendiri. Mari kita buat beberapa dari mereka sendiri.
impor org.springframework.beans.propertyeditors.propertiesEditor; DoubleEditor kelas publik memperluas PropertiesEditor {@Override public void setastext (string text) melempar IllegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (double.parsedouble (teks)); } @Override public string getastext () {return getValue (). ToString (); }} impor org.springframework.beans.propertyeditors.propertiesEditor; Interegereditor kelas publik memperluas propertiesEditor {@Override public void setastext (string text) melempar IllegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (integer.parseint (teks)); } @Override public string getastext () {return getValue (). ToString (); }} impor org.springframework.beans.propertyeditors.propertiesEditor; Floateditor kelas publik memperluas propertiesEditor {@Override public void setastext (string text) melempar ilegalArgUmentException {if (text == null || text.equals ("")) {text = "0"; } setValue (float.parsefloat (teks)); } @Override public string getastext () {return getValue (). ToString (); }} impor org.springframework.beans.propertyeditors.propertiesEditor; Longeditor kelas publik memperluas PropertiesEditor {@Override public void setastext (string text) melempar IllegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (long.parselong (teks)); } @Override public string getastext () {return getValue (). ToString (); }}Di Basecontroller
@Initbinder Protected Void InitBinder (WebDatabinder Binder) {Binder.RegisterCustomEditor (Date.class, New CustomDateEditor (new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"), true)); / binder.registercustomeditor (int.class, new customNumberEditor (int.class, true)); binder.registercustomeditor (int.class, integereditor baru ()); / binder.registercustomeditor (long.class, customNumberEditor baru (long.class, true)); binder.registercustomeditor (long.class, new longeditor ()); binder.registercustomeditor (double.class, ganda baru ()); binder.registercustomeditor (float.class, new floateditor ()); } Salinan kode adalah sebagai berikut:
kelas publik org.springframework.beans.propertyeditors.propertiesEditor memperluas java.beans.propertyeditorsupport {
Melihat? Tidak apa -apa jika kelas editor Anda secara langsung mewarisi properti yang mendukung.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.