我想拥有一个可以处理多个请求的控制器。就像处理所有addUser,deleteUser,updateUser和viewUser功能的UserController一样。我知道MultiActionController可用于将多个类似的请求捆绑到一个控制器中。但是addUser和updateUser等功能涉及用户输入控制器需要处理的数据。 MultiActionController句柄可以doSubmit类方法(类似于SimpleFormController)。有没有更好的方法来处理这种情况?
感谢。 拉维
答案 0 :(得分:1)
您使用的是什么版本的Spring MVC?如果您使用的是2.5或更高版本,您应该查看Spring MVC注释,它允许您使任意类成为具有任意数量的控制器方法的控制器(这绝对包括处理POST请求的一些 - “doSubmit “ - 和一些处理GET请求的人。)
编辑添加示例代码:
(请注意,在我尝试使用REST约定的示例中,但这不是必需的。)
UserController.java中的(不需要从任何Spring类继承,但顶部应该有@Controller
)
@RequestMapping(value = "/users/{userId}", method = RequestMethod.GET)
public String showUser(@PathVariable("userId") Long userId, ModelMap model) {
model.addAttribute("user", userRepository.getUser(userId));
return "showUser"; //view name
}
@RequestMapping(value = "/users/", method = RequestMethod.POST)
public String createUser(@ModelAttribute("user") User user, BindingResult result, SessionStatus status) {
new UserValidator().validate(user, result);
if (result.hasErrors()) {
return "userForm";
}
else {
userRepository.saveUser(user);
status.setComplete();
return "redirect:/users/" + user.getId();`enter code here`
}