我的问题可能很糟糕,所以这里有一些代码。
在我的控制器中,我有这段代码:
@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";
}
这表示(据我所知),如果用户向POST
页面发送HTTP addGoal.jsp
请求:创建Goal对象的实例,并将其重定向到{{1 }}
我的问题是,如何为给定页面提供多种POST方法? EG 2按钮 - 1个按钮执行上述index.jsp
方法,页面上的其他按钮执行不同的POST
方法。
先谢谢,对不起,如果我解释得不好,还在学习!
答案 0 :(得分:0)
This says (as far as I understand it), if a user sends an HTTP POST request to the addGoal.jsp page
不完全是,用户将POST发送到已由Spring映射的此方法(addGoal
),它返回(可能)WEB-INF / jsp / addGoal.jsp或/index.jsp < / p>
你可以在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
,尽管您可能希望在此时使用更通用的名称。