在Spring MVC裡,@ModelAttribute通常使用在Controller方法的參數注解中,用于解釋model entity,但同時,也可以放在方法注解裡。
如果把@ModelAttribute放在方法的注解上時,代表的是:該Controller的所有方法在調用前,先執行此@ModelAttribute方法。
比如我們有一個Controller:TestController


在調用所有方法之前,都會先執行preRun()方法。
我們可以把這個@ModelAttribute特性,應用在BaseController當中,所有的Controller繼承BaseController,即可實作在調用Controller時,先執行@ModelAttribute方法。
比如權限的驗證(也可以使用Interceptor)等
下面是一個設定request和response的方式(這個未測試,不知有沒線和安全問題)


@ModelAttribute也可以做為Model輸出到View時使用,比如:
測試例子




頁面将輸出:
在Console中輸出為:
這裡可以看到,運作的先後次序為:先調用getAccounts(),再調用index()。
<a href="http://home.cnblogs.com/u/soundcode/">左正</a>
<a href="http://home.cnblogs.com/u/soundcode/followees">關注 - 29</a>
<a href="http://home.cnblogs.com/u/soundcode/followers">粉絲 - 126</a>
<a>+加關注</a>
<a></a>
(評論功能已被禁用)
<a href="http://www.ucancode.com/index.htm" target="_blank">【推薦】超50萬VC++源碼: 大型工控、組态\仿真、模組化CAD源碼2018!</a>
<a href="https://dnspod.cloud.tencent.com/act/yearendsales?from=IT&fromSource=gwzcw.741110.741110.741110" target="_blank">【推薦】騰訊雲新使用者域名搶購1元起,抓緊搶購</a>
<b>最新IT新聞</b>:
<b>最新知識庫文章</b>: