如何在弹簧控制器中处理来自相同形式的两个不同的提交操作

时间:2011-07-12 00:27:46

标签: jsp spring-mvc

我的JSP添加中有两个提交按钮,删除。我真的不知道如何区分控制器端的操作。

<form:form modelAttribute="emp" action="/empl" method="POST"> 
    <input type="submit" name="operation" value="Remove"/>
    <input type="submit" name="operation" value="Add" />
</form:form>

@RequestMapping(value = "/empl", method = RequestMethod.POST)
public String getD(@Valid Em form, BindingResult result, Model model) {//code}

单击任一按钮,分别正确地发布值和“操作添加”或“操作删除”,然后添加作品,因为这是被调用的默认方法。现在我如何捕获操作参数并区分操作并使用它?

1 个答案:

答案 0 :(得分:6)

浏览器将提供一个请求参数,其中包含已按下的提交按钮的名称。然后,您可以使用它们进行过滤:

@RequestMapping(value="/empl", method=RequestMethod.POST, params="operation=Remove")
public String remove(@Valid Em form, BindingResult result, Model model)

@RequestMapping(value="/empl", method=RequestMethod.POST, params="operation=Add")
public String add(@Valid Em form, BindingResult result, Model model)

然后,每个人都可以根据需要调用共享逻辑。