国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - SpringMVC中@ModelAttribute注解的使用教程

SpringMVC中@ModelAttribute注解的使用教程

2021-11-10 13:14leo3070 Java教程

在SpringMVC中,我們可以通過(guò)使用@ModelAttribute注解標(biāo)記方法,實(shí)現(xiàn)類似于Struts2中Preparable攔截器的效果,這篇文章主要給大家介紹了關(guān)于SpringMVC中@ModelAttribute注解使用的相關(guān)資料,需要的朋友可以參考下

前言

@ModelAttribute最主要的作用是將數(shù)據(jù)添加到模型對(duì)象中,用于視圖頁(yè)面展示時(shí)使用。

@ModelAttribute等價(jià)于 model.addAttribute("attributeName", abc); 但是根據(jù)@ModelAttribute注釋的位置不同,和其他注解組合使用,致使含義有所不同。具體區(qū)別如下:

1.@ModelAttribute注釋方法

例子(1),(2),(3)類似,被@ModelAttribute注釋的方法會(huì)在此controller每個(gè)方法執(zhí)行前被執(zhí)行,因此對(duì)于一個(gè)controller映射多個(gè)URL的用法來(lái)說(shuō),要謹(jǐn)慎使用。

(1)@ModelAttribute注釋void返回值的方法

?
1
2
3
4
5
6
7
8
9
10
11
12
@Controller
public class HelloWorldController {
    @ModelAttribute
    public void populateModel(@RequestParam String abc, Model model) {
         model.addAttribute("attributeName", abc);
      }
 
    @RequestMapping(value = "/helloWorld")
    public String helloWorld() {
       return "helloWorld";
        }
 }

這個(gè)例子,在獲得請(qǐng)求/helloWorld 后,populateModel方法在helloWorld方法之前先被調(diào)用,它把請(qǐng)求參數(shù)(/helloWorld?abc=text)加入到一個(gè)名為attributeName的model屬性中,在它執(zhí)行后 helloWorld被調(diào)用,返回視圖名helloWorld和model已由@ModelAttribute方法生產(chǎn)好了。

(2)@ModelAttribute注釋返回具體類的方法

?
1
2
3
4
@ModelAttribute
public Account addAccount(@RequestParam String number) {
    return accountManager.findAccount(number);
}

這種情況,model屬性的名稱沒(méi)有指定,它由返回類型隱含表示,如這個(gè)方法返回Account類型,那么這個(gè)model屬性的名稱是account。

這個(gè)例子中model屬性名稱有返回對(duì)象類型隱含表示,model屬性對(duì)象就是方法的返回值。它無(wú)須要特定的參數(shù)。

(3)@ModelAttribute(value="")注釋返回具體類的方法

?
1
2
3
4
5
6
7
8
9
10
11
12
@Controller
public class HelloWorldController {
    @ModelAttribute("attributeName")
    public String addAccount(@RequestParam String abc) {
        return abc;
      }
 
    @RequestMapping(value = "/helloWorld")
    public String helloWorld() {
        return "helloWorld";
          }
   }

這個(gè)例子中使用@ModelAttribute注釋的value屬性,來(lái)指定model屬性的名稱。model屬性對(duì)象就是方法的返回值。它無(wú)須要特定的參數(shù)。

(4)@ModelAttribute和@RequestMapping同時(shí)注釋一個(gè)方法

?
1
2
3
4
5
6
7
8
@Controller
public class HelloWorldController {
    @RequestMapping(value = "/helloWorld.do")
    @ModelAttribute("attributeName")
    public String helloWorld() {
         return "hi";
      }
  }

這時(shí)這個(gè)方法的返回值并不是表示一個(gè)視圖名稱,而是model屬性的值,視圖名稱由RequestToViewNameTranslator根據(jù)請(qǐng)求"/helloWorld.do"轉(zhuǎn)換為邏輯視圖helloWorld。

Model屬性名稱有@ModelAttribute(value=””)指定,相當(dāng)于在request中封裝了key=attributeName,value=hi。

2.@ModelAttribute注釋一個(gè)方法的參數(shù)

(1)從model中獲取

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@Controller
public class HelloWorldController {
    @ModelAttribute("user")
    public User addAccount() {
        return new User("jz","123");
     }
 
    @RequestMapping(value = "/helloWorld")
    public String helloWorld(@ModelAttribute("user") User user) {
           user.setUserName("jizhou");
           return "helloWorld";
        }
  }

在這個(gè)例子里,@ModelAttribute("user") User user注釋方法參數(shù),參數(shù)user的值來(lái)源于addAccount()方法中的model屬性。

此時(shí)如果方法體沒(méi)有標(biāo)注@SessionAttributes("user"),那么scope為request,如果標(biāo)注了,那么scope為session

(2)從Form表單或URL參數(shù)中獲取(實(shí)際上,不做此注釋也能拿到user對(duì)象)

?
1
2
3
4
5
6
7
@Controller
public class HelloWorldController {
    @RequestMapping(value = "/helloWorld")
    public String helloWorld(@ModelAttribute User user) {
        return "helloWorld";
     }
}

它的作用是將該綁定的命令對(duì)象以“user”為名稱添加到模型對(duì)象中供視圖頁(yè)面展示使用。我們此時(shí)可以在視圖頁(yè)面使用${user.username}來(lái)獲取綁定的命令對(duì)象的屬性。

3.@ModelAttribute注釋一個(gè)方法的返回值

放在方法的返回值之前,添加方法返回值到模型對(duì)象中,用于視圖頁(yè)面展示時(shí)使用。

?
1
2
3
4
5
6
7
8
@Controller
public class HelloWorldController {
 
    @RequestMapping(value = "/helloWorld")
    public @@ModelAttribute("user2") User helloWorld(@ModelAttribute User user) {
        return new User();
     }
}

大家可以看到返回值類型是對(duì)象類型,而且通過(guò) @ModelAttribute("user2") 注解,此時(shí)會(huì)添加返回值到模型數(shù)據(jù)( 名字為user2 ) 中供視圖展示使用

@ModelAttribute  注解的返回值會(huì)覆蓋 @RequestMapping  注解方法中的 @ModelAttribute  注解的同名命令對(duì)象

總結(jié)

到此這篇關(guān)于SpringMVC中@ModelAttribute注解使用的文章就介紹到這了,更多相關(guān)@ModelAttribute注解使用內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/leo3070/article/details/81046383

延伸 · 閱讀

精彩推薦
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品精品 | 日韩欧美视频免费 | 久久一级黄 | 日日操综合 | 91精品国产乱码久久久久久 | 日本二区视频 | 久久精品久久久 | 久久久久久综合 | 成人精品视频 | 色先锋av资源中文字幕 | 另类在线 | 蜜桃精品久久久久久久免费影院 | 夜夜av| 伊人亚洲| 精品91久久| 日本高清一区 | 午夜精品久久久久久久久 | 欧美日韩免费在线 | 精品国产乱码久久久久久88av | 欧美成人一区二区 | 黄色一级大片免费看 | 久久久一区二区精品 | 欧美日韩成人 | 国产区区| 一级毛片免费看 | 色婷婷精品久久二区二区蜜臂av | 久操免费视频 | 欧美日韩精品一区二区三区四区 | 91国内外精品自在线播放 | 黄色免费看片网站 | 日韩在线短视频 | 亚洲成年人影院 | 欧美三区 | 午夜视频精品 | 国产视频一二区 | 亚洲一区中文 | 欧美久久综合 | 一区二区三区影视 | 91最新网址 | 久久成人免费视频 | 久久伦理电影网 |