我有一个带有一个表单和2个按钮的HTML页面片段:
<form action="#" data-th-action="@{/action/edit}" data-th-object="${model}" method="post"> <button type="submit" name="action" value="save">save</button> <button type="submit" name="action" value="cancel">cancel</button> </form>
和控制器:
@RequestMapping(value="/edit", method=RequestMethod.POST) public ModelAndView edit(@ModelAttribute SomeModel model, @RequestParam(value="action", required=true) String action) { if (action.equals("save")) { // do something here } if (action.equals("cancel")) { // do another thing } return modelAndView; }
这项工作很好,但是如果我有更多按钮,则必须添加更多if语句以检查action字符串。我还有另一种方法可以为表单中的 每个按钮* 创建 一个动作 吗? *
if
action
您可以@RequestMappings使用params变量创建不同的单独方法。
@RequestMappings
@RequestMapping(value="/edit", method=RequestMethod.POST, params="action=save") public ModelAndView save() {} @RequestMapping(value="/edit", method=RequestMethod.POST, params="action=cancel") public ModelAndView cancel() {}