通過 InitBinder註解實現引數繫結

2021-10-05 21:59:57 字數 1311 閱讀 7131

@initbinder簡介

@initbinder註解是controller級別的,乙個controller例項中的所有@initbinder 只對該controller有效。

@initbinder標註的方法, 方法的引數可以有httpservletrequest、modelmap、webdatabinder,一般情況下webdatabinder就能夠滿足的部分的需求了。

@initbinder標註的方法是在其匹配的controller請求執行之前執行的。

webdatabinder指定引數名稱字首

binder.setfielddefaultprefix()方法可以用來指定引數名稱的字首,可以避免兩個實體引數有相同名稱屬性的情況下繫結錯誤的問題。

比如有下面兩個實體a和b,它們都有相同的屬性名稱,在同乙個controller方法作為引數時就會出現問題

public

class

apublic

class

b

這個時候我們就可以通過binder.setfielddefaultprefix()方法來配置請求引數字首,前端提交的時候使用a.test、b.test就可以了

@controller

("/test"

)public

class

testcontroller

@initbinder

("b"

)public

void

initbinderaddr

(webdatabinder binder)

("/test"

)@responsebody

public map

test

(@modelattribute

("a"

) a a,

@modelattribute

("b"

) b b)

webdatabinder注入自定義型別轉換

binder.registercustomeditor()方法可以實現自定義型別資料繫結,實現方式參考文章: controller層接收date型別引數進行統一轉換

public

void

registercustomeditor

(class<

?> requiredtype, propertyeditor propertyeditor)

InitBinder註解使用

initbinder用於在 controller中標註於方法,表示為當前控制器註冊乙個屬性編輯器或者其他,只對當前的controller有效。controller public class testcontroller responsebody public mapgetformatdata dat...

通過註解配置Bean

1.在配置檔案中設定spring ioc容器掃瞄的包 resource pattern可以指定掃瞄的資源。base package per.yrj resource pattern repository class 還可以通過子節點來指定不包含哪些檔案,通過來指定包含哪些檔案。2.在bean類前新增...

實訓 SSH常用註解

1 requestparam value what required true 這個是傳參 當他為false 時 使用這個註解可以不傳這個引數 true時必須傳 required預設值是true 2 autowired可以對成員變數 方法和建構函式進行標註,來完成自動裝配的工作,這裡必須明確 aut...