SpringMVC中利用@InitBinder來對頁面數據進行解析綁定的方法
在使用SpingMVC框架的項目中,經常會遇到頁面某些數據類型是Date、Integer、Double等的數據要綁定到控制器的實體,或者控制器需要接受這些數據,如果這類數據類型不做處理的話將無法綁定。
這里我們可以使用注解@InitBinder來解決這些問題,這樣SpingMVC在綁定表單之前,都會先注冊這些編輯器。一般會將這些方法些在BaseController中,需要進行這類轉換的控制器只需繼承BaseController即可。其實Spring提供了很多的實現類,如CustomDateEditor、CustomBooleanEditor、CustomNumberEditor等,基本上是夠用的。
demo如下:
public class BaseController {
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new MyDateEditor());
binder.registerCustomEditor(Double.class, new DoubleEditor());
binder.registerCustomEditor(Integer.class, new IntegerEditor());
}
private class MyDateEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(text);
} catch (ParseException e) {
format = new SimpleDateFormat("yyyy-MM-dd");
try {
date = format.parse(text);
} catch (ParseException e1) {
}
}
setValue(date);
}
}
public class DoubleEditor extends PropertiesEditor {
@Override
public void setAsText(String text) throws IllegalArgumentException {
if (text == null || text.equals("")) {
text = "0";
}
setValue(Double.parseDouble(text));
}
@Override
public String getAsText() {
return getValue().toString();
}
}
public class IntegerEditor extends PropertiesEditor {
@Override
public void setAsText(String text) throws IllegalArgumentException {
if (text == null || text.equals("")) {
text = "0";
}
setValue(Integer.parseInt(text));
}
@Override
public String getAsText() {
return getValue().toString();
}
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決idea默認帶的equals和hashcode引起的bug
這篇文章主要介紹了解決idea默認帶的equals和hashcode引起的bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
在SpringBoot項目中使用Spring Cloud Sentinel實現流量控制
隨著微服務架構的流行,服務之間的調用變得越來越頻繁和復雜,流量控制是保障系統(tǒng)穩(wěn)定性的重要手段之一,它可以幫助我們避免因過載而導致的服務不可用,本文將介紹如何在Spring Boot項目中使用Spring Cloud Sentinel來實現流量控制,需要的朋友可以參考下2024-08-08
DynamicDataSource怎樣解決多數據源的事務問題
這篇文章主要介紹了DynamicDataSource怎樣解決多數據源的事務問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
通過System.getProperty配置JVM系統(tǒng)屬性
這篇文章主要介紹了通過System.getProperty配置JVM系統(tǒng)屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10

