抱歉,如果這太模糊了,我是 Spring 新手。我見過的 95% 以上的示例用于 spring 控制器使用類似Model或ModelAndView添加屬性以傳遞給視圖。像這樣的東西:
@GetMapping("/")
public String home(Model model) {
model.addAttribute(....);
...
return "home";
}
但我很少遇到這種情況:
public String home(Map<String, Object> model) {
model.put(...);
...
return "home";
}
這似乎也可以正常作業。后者是一種較舊的方法嗎?此外,在哪里可以找到有關由特定注釋(例如@RequestMapping)注釋的方法的檔案?IE。不是關于注釋本身的引數的檔案,而是關于傳遞給由這些注釋注釋的 java 方法/類的引數的檔案。例如。@RequestMapping 的春季檔案沒有提供有關Model/之類的任何資訊,ModelAndView因此我很困惑以這種方式注釋的方法如何在從何處獲取Model物件(或實際上Map<String, Object>)方面起作用
uj5u.com熱心網友回復:
spring mvc 使用 MapMethodProcessor 來決議函式中 Map 型別的引數。在決議該型別的引數時,實際上是在當前請求的ModelAndViewContainer物件中獲取了defaultModel物件,而defaultModel物件是Map Subclass(BindingAwareModelMap),所以這兩種方法唯一的區別就是一個顯式的讓你知道你'正在使用Model物件,而另一個讓您認為您正在使用HashMap或其他一些Map子類物件,但它實際上是BindingAwareModelMap,即Model物件在此處輸入影像描述。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/520514.html
標籤:爪哇春天弹簧靴
