0
我有一個預覽頁面,需要添加或編輯模型並顯示預覽。Spring將多個屬性綁定到相同的@ModelAttribute
@RequestMapping(value = "/preview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
//action
}
@RequestMapping(value = "/preview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
//action
}
我需要從添加表單頁面和編輯表單頁面調用預覽。我要傳遞的模型是相同的,但來自不同的形式。
(1)有沒有一種方法ModelAttribute支持這種多屬性名稱映射? (2)我如何考慮重新設計這個?考慮(a)在表單提交之前重命名錶單名稱/屬性以使用相同的屬性名稱。 (b)完全刪除ModelAttribute - 對於我來說這不是一種選擇,因爲我使用的是spring mvc表單綁定。
注意:我使用editForm/addForm作爲會話屬性。
我可能是錯的,但我不認爲模型屬性作爲路由邏輯的一部分,所以Spring無法確定將兩個相同的映射中的哪一個映射到預覽POST。你需要從REST的角度來思考這個問題 - 其中一個應該是POST,另一個是PUT。獲得該權利將通知您的決定有關模型屬性... –
@EngineerDollery,我同意路由邏輯部分。我們不應該(在我的情況下,不能)使用ModelAttribute來確定路由到哪個方法。我的意圖只是將具有不同屬性名稱的相同表單模型(類型)採集到相同的方法中。 –