成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

3.9、在方法上使用@ModelAttribute注解

王笑朝 / 2245人閱讀

摘要:用在方法上的指示那個方法的目的是添加一個或多個模型屬性。在控制器中的方法的調(diào)用時機是在同一個控制器中的方法之前。注意,有兩種形式的方法。注解也可以用在方法上。

??這一部分翻譯自 Spring 5.0.0.M1 文檔中的 Using @ModelAttribute on a method 一節(jié)。這一節(jié)的演示示例在這個項目的 mvc 分支中的 ModelAttrController.java 文件中。

??注解@ModelAttribute可以用在方法或者方法參數(shù)上。這一節(jié)解釋它用在方法上,下一節(jié)解釋把它用在方法參數(shù)上。

??用在方法上的@ModelAttribute指示那個方法的目的是添加一個或多個模型屬性(model attributes)。這樣的方法和@RequestMapping方法支持的參數(shù)類型相同,但是不能直接映射到請求。在控制器中的@ModelAttribute方法的調(diào)用時機是在同一個控制器中的@RequestMapping方法之前。下面是幾個例子:

// 添加一個屬性
// 這個方法的返回值被添加到名為 “account” 的模型下
// 你可以自定義這個名字,像這樣 @ModelAttribute("myAccount")
@ModelAttribute
public Account addAccount(@RequestParam String number) { return accountManager.findAccount(number); }

// 添加多個屬性
@ModelAttribute
public void populateModel(@RequestParam String number, Model model) 
{
    model.addAttribute(accountManager.findAccount(number));
    // add more ...
}

??@ModelAttribute方法用于構(gòu)建帶有常用屬性的模型,比如用狀態(tài)或者寵物類型填充一個下拉框,或者取回一個命令對象如 Account,把它用作 HTML 表單數(shù)據(jù)。后一種情況在下一節(jié)會進行更深入的討論。

??注意,有兩種形式的@ModelAttribute方法。第一種,方法通過返回屬性來隱式地添加屬性。第二種,方法接受一個Model參數(shù),并把任何數(shù)量的屬性添加給它。你可以根據(jù)需要選擇其中的任何一種。

??一個控制器可以有任何數(shù)量的@ModelAttribute方法。所有的這些方法都在同一個控制器中的@RequestMapping方法之前調(diào)用?!竞苓z憾,我現(xiàn)在還沒有找到關(guān)于一個控制器中有多個@ModelAttribute方法時,這些方法的調(diào)用順序的說明。以后找到的話會補上】

??@ModelAttribute方法也可以定義在一個帶有@ControllerAdvice注解的類中,這些方法應(yīng)用于很多控制器。詳情參見“使用@ControllerAdvice@RestControllerAdvice通知控制[2]”一節(jié)

??在不顯式指定屬性名的時候發(fā)生了什么?這種情況下,被賦值的模型屬性的缺省名稱是基于其類型的。比如,如果一個方法返回一個 Account 類型的對象的話,那么缺省名就是“account”。你可以通過注解@ModelAttribute的值來改變。如果直接添加屬性到模型的話,請使用合適的方法 addAttribute(..) 的重載。

??注解@ModelAttribute也可以用在@RequestMapping方法上。這種情況下,@RequestMapping方法的返回值被攔截為一個模型屬性,而不是一個視圖名。關(guān)于視圖,參見源文檔的18.13.3節(jié)“視圖——RequestToViewNameTranslator”。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66053.html

相關(guān)文章

  • 3.10、方法參數(shù)使用@ModelAttribute注解

    摘要:本節(jié)解釋它用在參數(shù)上的情形。一個用在方法參數(shù)上的注解指示了參數(shù)應(yīng)該從模型這里所說的模型指中獲取。方法是一種常用的從數(shù)據(jù)庫中獲取屬性的方式,可以通過使用注解把這種屬性在各個請求之間共享。下一步是數(shù)據(jù)綁定。 ??這一部分實例見這個項目的 mvc 分支下的 ModelAttrArgsController.java ??上節(jié)說過,@ModelAttribute可以用在方法或方法參數(shù)上。本節(jié)解...

    huhud 評論0 收藏0
  • 從原理層面掌握@ModelAttribute使用(核心原理篇)【一起學(xué)Spring MVC】

    摘要:雖然它不是必須,但是它是個很好的輔助官方解釋首先看看官方的對它怎么說它將方法參數(shù)方法返回值綁定到的里面。解析注解標(biāo)注的方法參數(shù),并處理標(biāo)注的方法返回值。 每篇一句 我們應(yīng)該做一個:胸中有藍圖,腳底有計劃的人 前言 Spring MVC提供的基于注釋的編程模型,極大的簡化了web應(yīng)用的開發(fā),我們都是受益者。比如我們在@RestController標(biāo)注的Controller控制器組件上用@...

    wdzgege 評論0 收藏0
  • 從原理層面掌握@ModelAttribute使用使用篇)【一起學(xué)Spring MVC】

    摘要:和一起使用參照博文從原理層面掌握的使用一起學(xué)。至于具體原因,可以移步這里輔助理解從原理層面掌握的使用核心原理篇一起學(xué)再看下面的變種例子重要訪問。 每篇一句 每個人都應(yīng)該想清楚這個問題:你是祖師爺賞飯吃的,還是靠老天爺賞飯吃的 前言 上篇文章 描繪了@ModelAttribute的核心原理,這篇聚焦在場景使用上,演示@ModelAttribute在不同場景下的使用,以及注意事項(當(dāng)然有些...

    BenCHou 評論0 收藏0
  • springmvc常用注解標(biāo)簽詳解

    摘要:分發(fā)處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了注解。作用該注解用于將的方法返回的對象,通過適當(dāng)?shù)霓D(zhuǎn)換為指定格式后,寫入到對象的數(shù)據(jù)區(qū)。用于注解層,在類上面注解。使用標(biāo)記的參數(shù)。 1、@Controller 在SpringMVC 中,控制器Controller 負責(zé)處理由DispatcherServlet 分發(fā)的請求,它把用戶請求的數(shù)據(jù)經(jīng)過業(yè)務(wù)處理層處理之后封裝成一個M...

    notebin 評論0 收藏0
  • spring-mvc注解

    摘要:關(guān)鍵注解的關(guān)鍵注解主要有其中主要是用于標(biāo)記該類是一個控制器,用于指示的哪一個類或方法來處理請求動作,即用于標(biāo)識具體的處理器。默認已經(jīng)裝配了作為組件的實現(xiàn)類,而由使用,將請求信息轉(zhuǎn)換為對象。 關(guān)鍵注解 springmvc的關(guān)鍵注解主要有@Controller/@RequestMapping/@RequestParam/@PathVariable/@RequestHeader/@Cooki...

    EdwardUp 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<