我有一个预览页面,可以添加或编辑模型并显示预览。
@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 form binding。
注意:我使用editForm / addForm作为会话属性。
答案 0 :(得分:0)
实际上不是解决方案,而是解决问题。
方法1:
@RequestMapping(value = "/preview", method = RequestMethod.PUT)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
//action
}
@RequestMapping(value = "/preview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
//action
}
方法2:
@RequestMapping(value = "/editpreview", method = RequestMethod.PUT)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
//action
}
@RequestMapping(value = "/addpreview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
//action
}