springmvc

1. @InitBinder

注解一個方法甸各,用來初始化屬性編輯器他膳、注冊參數(shù)驗證器

1.1 屬性編輯器惦银,指定了類型和它對對應(yīng)的編輯器堕阔,比如Date類型綁定了一個編輯器棍厂,以后就可以使用這個編輯器來對Date進(jìn)行解析
1.2 參數(shù)驗證器,參數(shù)驗證器需要實現(xiàn)Validator接口超陆,然后在binder中注冊牺弹,在controller參數(shù)上加上@Validated浦马,就能使用這里注冊的參數(shù)驗證器。其實參數(shù)驗證也可以考慮使用jsr303的參數(shù)驗證框架配合攔截器或者切面實現(xiàn)张漂。

2. @ModelAttribute

顧名思義晶默,模型屬性,模型也就是springmvc中的數(shù)據(jù)部分航攒,也就是說這個注解是和模型屬性操作相關(guān)的磺陡,他可以在模型中設(shè)置屬性,也可以從模型中取出屬性的值漠畜。

2.1 這個注解有3種使用方式:

注解在controller的一個普通方法上币他,方法上不含有 @RequestMapping,這種情況下每個請求過來的時候都會調(diào)用這個方法憔狞,他的意圖是希望在請求到達(dá)真正的處理方法之前設(shè)置一下模型的屬性蝴悉,這樣可以在正在處理之前做一些初始化的工作,比如說所有的方法里都需要一個公共的信息瘾敢,就可以在這里做設(shè)置拍冠。具體的:1.如果注解的方法參數(shù)中有Model、Map簇抵、ModelMap類型的參數(shù)庆杜,可以直接將希望設(shè)置的參數(shù)設(shè)置上去,后面再controller的處理方法上可以獲取到 2. 如果設(shè)置了@ModelAttribute 的value值碟摆,會使用這個value值作為key欣福,使用方法的返回值作為值,設(shè)置到model中焦履。3. @ModelAttribute注解的方法上同時也有@RequestMapping 那么方法的返回值不會生成modelAndView,會把方法的返回值設(shè)置到model中去雏逾。

2.2 @ModelAttribute 究竟在什么地方起作用呢嘉裤?springmvc在哪個階段使用了這個注解呢?

每個請求到來的時候栖博,springmvc都會去初始化當(dāng)前請求處理所使用的model屑宠,@ModelAttribute 注解的方法需要得到執(zhí)行以便初始化model屬性。

3. @ControllerAdvice 是干什么用的仇让?

使用@InitBinder @ModelAttribte 注解一個方法的時候典奉,這個方法在所有需要的controller中都寫一個就造成很多的重復(fù),如果使用基類繼承也可以做到丧叽,但是不夠靈活卫玖,@ControllerAdvice 允許將這些公共的方法都放到一個類中即可,系統(tǒng)啟動時自動掃描踊淳,自動把這些公共的東西都注冊好假瞬,對controller代碼沒有任何影響陕靠,而且ControllerAdvice還可以指定basepackge,basepackageclass脱茉、annotation等方式剪芥,可以精確控制這些公共方法的影響范圍,比如可以自定義annotation琴许,注解到合適的controller上去税肪。

4. 如何判斷class A 實現(xiàn)了 B 接口?

B.class.isAssignableFrom(A.class)
bean instanceof Ordered

5. 如何自定義springmvc的攔截器榜田?

實現(xiàn) HandlerInterceptor 接口益兄,然后在springmvc的配置文件里配置上就可以了,在配置文件里還可以指定每一個攔截器使用的mapping

6. 自定義參數(shù)解析器

springmvc 雖然允許自定義參數(shù)解析器串慰,但是自定義的解析器地位比較低偏塞,只有當(dāng)springmvc自身的解析器都無法解析的情況下才考慮你自己定義的解析器!

7. class文件一旦編譯后就看不到了參數(shù)名等信息邦鲫,那么請求的參數(shù)如何映射到方法參數(shù)上灸叼?

讀取class文件,解析局部變量表中的參數(shù)名庆捺,最終在內(nèi)存中形成一個map古今,key是method,值是string數(shù)組滔以,里面就是方法的參數(shù)名捉腥。

8. @SessionAttribute 的用法

sessionAttribute 類似于httpsession,可以在多個請求之間保持?jǐn)?shù)據(jù)你画。用法:1抵碟、設(shè)置:@SessionAttribute 只能用在class上,參數(shù)可以指定names和types坏匪,這樣當(dāng)我們往model中設(shè)置屬性的同時也會往sessionAttribute中設(shè)置指定names和types的屬性拟逮。2、獲仁首摇:一旦通過1的方法設(shè)置后敦迄,在后面的請求中會自動(model初始化階段)的把這些屬性設(shè)置到后面請求的model中去,后面可以直接從model中獲取這些屬性凭迹。也可以在頁面上通過request.getAttribute罚屋、session.getAttribute來獲取屬性的值。3嗅绸、清除的方法脾猛,使用sessionStatus.setComplete來清除。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鱼鸠,一起剝皮案震驚了整個濱河市尖滚,隨后出現(xiàn)的幾起案子喉刘,更是在濱河造成了極大的恐慌,老刑警劉巖漆弄,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件睦裳,死亡現(xiàn)場離奇詭異,居然都是意外死亡撼唾,警方通過查閱死者的電腦和手機(jī)廉邑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倒谷,“玉大人蛛蒙,你說我怎么就攤上這事〔吵睿” “怎么了牵祟?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抖格。 經(jīng)常有香客問我诺苹,道長,這世上最難降的妖魔是什么雹拄? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任收奔,我火速辦了婚禮,結(jié)果婚禮上滓玖,老公的妹妹穿的比我還像新娘坪哄。我一直安慰自己,他們只是感情好势篡,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布翩肌。 她就那樣靜靜地躺著,像睡著了一般禁悠。 火紅的嫁衣襯著肌膚如雪念祭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天绷蹲,我揣著相機(jī)與錄音,去河邊找鬼顾孽。 笑死祝钢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的若厚。 我是一名探鬼主播拦英,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼测秸!你這毒婦竟也來了疤估?” 一聲冷哼從身側(cè)響起灾常,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铃拇,沒想到半個月后钞瀑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慷荔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年雕什,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片显晶。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贷岸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出磷雇,到底是詐尸還是另有隱情偿警,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布唯笙,位于F島的核電站螟蒸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏睁本。R本人自食惡果不足惜尿庐,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呢堰。 院中可真熱鬧抄瑟,春花似錦、人聲如沸枉疼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骂维。三九已至惹资,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間航闺,已是汗流浹背褪测。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留潦刃,地道東北人侮措。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像乖杠,于是被迫代替她去往敵國和親分扎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容