瀏覽了一段時間並訪問了幾個網站後,我無法獲得清晰度。所以請任何人都解釋一下@ModelAttribute究竟做了什麼@ModelAttribute和@SessionAttrubutes在彈簧之間有什麼區別
0
A
回答
0
Spring API文檔一般都很好,所以我總是建議在嘗試理解框架時作爲一個起點。
的Javadoc @ModelAttribute說以下內容:結合的方法參數或方法的返回值 到名爲模型屬性,暴露於web視圖
詮釋。 {@link RequestMapping}帶註釋的處理程序類支持 。
一般來說,@ModelAttribute
是你的控制器來聲明其返回值由Spring自動綁定到模型,並確定由Spring自動綁定到方法參數型號值的方法的一種方式。
因此,例如:
@ModelAttribute("myValue")
public Foo myValue()
{
return new MyFoo();
}
這本質上說來春:
每當這個控制器被映射到服務的請求,調用此方法的返回值綁定到下模型鍵「myValue」。
這是一樣的:
@RequestMapping("/foo")
public ModelAndView foo()
{
ModelAndView mav = new ModelAndView("myView");
mav.addObject("myValue", new Foo());
return mav;
}
沒有正確和錯誤的做法在這裏,它只是有利於建立模型的不同方式。
@ModelAttribute
註釋也可用於控制器的方法參數。所以,你可以有以下幾種:
@RequestMapping("/doFoo")
public void doFoo(@ModelAttribute("myValue")Foo foo)
{
Do some stuff here...
}
再次,這是一個方便的方法提供由Spring以便於執行不同的管制方式。它是完全一樣的:以完全相同的方式
@RequestMapping("/doFoo")
public void doFoo(ModelAndView modelAndView)
{
Foo foo = (Foo)modelAndView.getModel().get("myValue");
Do some stuff here...
}
@SessionAttribute
作品,但正如其名稱所揭示的,該值綁定到或從用戶的HttpSession中,而不是模型讀取。
相關問題
- 1. @Named和@Qualifier在彈簧之間有什麼區別
- 2. 彈出窗口和彈出窗口之間有什麼區別?
- 3. modelAttribute和commandName之間的區別
- 4. 彈簧安全:帳戶鎖定和未啓用之間有什麼區別
- 5. ||之間有什麼區別?和|在R?
- 6. 在彈簧配置中,使用name和id有什麼區別?
- 7. 「層」和「層」之間有什麼區別?
- 8. Tableau和QlikView之間有什麼區別
- 9. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 10. @Entity和@embeddable之間有什麼區別
- 11. ContentObservable和DataSetObservable之間有什麼區別?
- 12. touchmove和gesturechange之間有什麼區別?
- 13. :notification.flags和notification.defaults之間有什麼區別?
- 14. proc和lambda之間有什麼區別?
- 15. :: after和after之間有什麼區別?
- 16. read()和io.read()之間有什麼區別?
- 17. Request()和Request.Form()之間有什麼區別?
- 18. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 19. getA()和this.getA()之間有什麼區別?
- 20. (int)和intval()之間有什麼區別?
- 21. set_value和= pandas之間有什麼區別
- 22. * zoom和zoom之間有什麼區別?
- 23. {0}和「」之間有什麼區別?
- 24. typedef和using之間有什麼區別?
- 25. 「」和「'之間有什麼區別?
- 26. STDIN和tty之間有什麼區別?
- 27. +和%之間有什麼區別?
- 28. sysfs_create_file()和sysfs_create_group()之間有什麼區別?
- 29. Lazy.Force()和Lazy.Value之間有什麼區別
- 30. -existingObjectWithID:error:和-objectWithID之間有什麼區別?