0

我的问题可能措辞不佳,所以这里有一些代码。

在我的控制器中,我有以下代码:

@RequestMapping(value = "addGoal", method = RequestMethod.POST)
public String updateGoal(@Valid @ModelAttribute("goal") Goal goal, BindingResult result) {

    System.out.println("result has errors: " + result.hasErrors());

    System.out.println("Goal set: " + goal.getMinutes());

    if(result.hasErrors()) {
        return "addGoal";
    } else {
        goalService.save(goal);
    }

    return "redirect:index.jsp";
}

这表示(据我所知),如果用户向页面发送 HTTPPOST请求addGoal.jsp:创建 Goal 对象的实例,并将它们重定向到index.jsp.

我的问题是,如何为给定页面设置多个 POST 方法?EG 2 个按钮 - 1 个按钮执行上述POST方法,页面上的不同按钮执行不同POST方法。

先谢谢了,如果我解释得不好,对不起,还在学习!

4

1 回答 1

0
This says (as far as I understand it), if a user sends an HTTP POST request to the addGoal.jsp page

不完全是,用户将 POST 发送到addGoalSpring 映射的此方法(),它返回(可能)WEB-INF/jsp/addGoal.jsp 或 /index.jsp

您可以在 jsp 上有多个表单,如果您为每个表单定义不同的映射,则每个表单都发送到不同的方法,示例:

@RequestMapping(value = "addGoal", method = RequestMethod.POST)
//addGoal code
@RequestMapping(value = "addFoul", method = RequestMethod.POST)
//addFoul code
@RequestMapping(value = "addSelfGoal", method = RequestMethod.POST)
//addSelfGoal code

并让它们全部返回到addGoal,尽管此时您可能希望使用更通用的名称。

于 2013-04-14T20:06:37.437 回答