我想使用@ModelAttribute
的自動裝配魔法來獲取和傳遞參考數據。這樣做的問題是任何添加到@ModelAttribute
模型的任何東西都被認爲是表單支持對象,然後綁定到請求,可能會修改對象。將@ModelAttribute用作參考數據 - 避免綁定
我只是希望它們添加到模型中以供視圖參考,並且能夠使用參數級別@ModelAttribute
將對象連接到用@RequestMapping
註釋的方法。有沒有辦法做到這一點,沒有一些詳細的@InitBinder
方法?
例如:
@ModelAttribute("owner")
public Person getOwner(@PathVariable("ownerId") Integer ownerId){
return getOwnerFromDatabaseById(ownerId);
}
@RequestMapping("/{ownerId}/addPet.do")
public ModelAndView addPet(HttpServletRequest request, @ModelAttribute("owner") Person owner){
String name = ServletRequestUtils.getStringParameter(request, "name");
Pet pet = new Pet();
pet.setName(name);
pet.setOwner(owner);
saveToDatabase(pet);
}
其中的寵物被添加到所有者甲簡單的例子。我希望將所有者放置在模型中供視圖使用,並且我還想使用自動裝配參數addPet()
中的參數。假設Pet
和Person
都有一個成員name
。在這種情況下,owner
會自動綁定到該請求,並將其name
設置爲該寵物的名稱。這怎麼可以避免?
你是什麼意思「假定是一個窗體支持對象」?任何不良行爲的例子? – axtavt 2011-03-22 09:08:16