我不知道这是正确的做法,但我现在可以提出最简单的解决方案。
我想在@RequestMapping中使用多个值,并在方法中执行业务逻辑,根据该方法将值称为方法。例如:
@RequestMapping(value = {"/delete", "/save"}, method = RequestMethod.POST)
public String crudOps(@ModelAttribute ("userForm") User user) {
// find user in repository....
if(value is delete)
delete(user);
else
save(user);
}
如何使if语句有效?
答案 0 :(得分:1)
您可以使用@PathVariale抓取部分网址,如下所示
@RequestMapping(value = /{action}, method = RequestMethod.POST)
public String crudOps(@PathVariable String action, @ModelAttribute ("userForm") User user) {
// find user in repository....
if(action.equals("delete"))
delete(user);
else
save(user);}
答案 1 :(得分:1)
在上面添加评论后,我通过访问HttpServletRequest getServletPath方法想到了一个不同的解决方案,
@RequestMapping(value = {"/delete", "/save"}, method = RequestMethod.POST)
public String crudOps(@ModelAttribute ("userForm") User user, HttpServletRequest request) {
// find user in repository....
if(request.getServletPath().equals("/delete"))
delete(user);
else
save(user);
}
答案 2 :(得分:1)
我个人会继续进行以下操作,
@RequestMapping(value = "user/{userid}", method = RequestMethod.DELETE)
并使用
@RequestMapping(value = "/save", method = RequestMethod.POST)
用于创建用户。这有助于实现单一职责原则和更多模块化代码。让您的方法做一件事,做对了!
建议使用this link,将HttpMethod用于哪个目的。