自定義Spring MVC中的資料繫結

2021-09-02 09:40:40 字數 1284 閱讀 4322

預設情況下,spring mvc的資料對映的實現是自動查詢請求中的key為引數名的parameter的值。比如有以下方法:

public string xmldata(string name, integer age)

則spring mvc會使用如下的方法給引數注入值:

name = request.getparameter("name");

age= new integer(request.getparameter("age"));

如果想要實現一些自定義的解析方式,又該如何做呢?

spring提供了乙個annotation org.springframework.web.bind.annotation.initbinder 可以用來做一些簡單的、自定義的解析的實現。

例如請求內容如下:

sss

21

這裡希望解析完以後,方法中的引數name和age就是對應的xml內容中的name和age的元素的值。

首先定義乙個新增了  initbinder 註解的方法:

@initbinder

public void addbinder(webdatabinder webdatabinder, webrequest webrequest)

由於需要的引數型別分別是string和integer,所以這裡新增對於string和integer型別的自定義的解析的支援,如下:

@initbinder

public void addbinder(webdatabinder webdatabinder, webrequest webrequest)

這裡 webdatabinder.getobjectname() 裡取出來的值就分別是name和age,根據引數的個數,這個方法會被呼叫多次。

下面就是custompropertyeditor的實現了:

public class custompropertyeditor extends  propertyeditorsupport 

private void extractxml()

} catch (parserconfigurationexception | saxexception | ioexception e)

} }@override

public object getvalue()

}

這裡就是簡單的提取xml中的內容,然後把提供的內容作為getvalue()方法的返回值輸出就可以了。

SpringMVC的自定義異常

預設的異常處理機制是向上丟擲,最終將異常結果拋在web頁面,這樣對使用者來說很不友好,所以可以通過自定義異常的方式來解決這個問題。第一步 自定義乙個異常類 自定義異常類 public class sy ception extends exception public sy ception overr...

Spring mvc 設定自定義首頁

web.xml 中什麼沒有配置任何有關歡迎頁的資訊!其實這時等效於如下配置 這個會由web容器最先訪問!index.html index.htm index.jsp 在用 spring mvc 寫程式時,配置 dispatcherservlet 攔截規則為攔截所有 時,應用程式的首頁定義很有可能會出...

springmvc 自定義異常處理

springmvc利用handlerexceptionresolver處理程式的異常,包括處理對映對映異常,資料繫結,處理器執行過程中發生的異常 public inte ce handlerexceptionresolver當發生異常的時候,直接呼叫resolveexception,生成乙個mode...