【发布时间】:2013-02-06 19:24:58
【问题描述】:
我收到了对方法 getIndex 的无效请求,因为缺少请求参数 id。我可以指定我不希望该请求映射方法的模型绑定吗?
@Controller
@RequestMapping ("/admin/admins")
public class AdminUserController {
@RequestMapping (method = RequestMethod.GET)
public String getIndex(ModelMap model) {
model.addAttribute("admins",userService.findAllAdmins());
return "admin/admins/list";
}
@ModelAttribute("user")
public AdminUser getAdminUser(@RequestParam("id") Integer id) {
return userService.findAdminById(id);
}
@RequestMapping (method = RequestMethod.POST)
public String registerAdmin(@Valid @ModelAttribute("user") AdminUser user, BindingResult bindingResult, ModelMap model) {
model.addAttribute("roles", userRoleService.findAll());
if (bindingResult.hasErrors()) {
return "admin/admins/form";
}
else if (!user.getPassword().equals(user.getConfirmPassword())) {
bindingResult.addError(new FieldError("user","confirmPassword", "Passwords don't match"));
return "admin/admins/form";
}
else {
user.setPassword(passwordEncoder.encodePassword(user.getPassword(), null));
try {
userService.save(user);
return "redirect:/admin/admins";
} catch(ApplicationException ce) {
bindingResult.addError(new FieldError("user", "email", "Email already registered"));
return "admin/admins/form";
}
}
}
【问题讨论】:
-
您的意思是您收到了对
getAdminUser()方法的无效请求?用getIndex得到它是没有意义的。 -
HTTP 状态 400 - 当我尝试获取用户 getIndex() 列表时,必需的整数参数“id”不存在
-
没错,就是方法
getAdminUser()而不是getIndex()。 -
是的..但是绑定是在每个requestmapping方法之前执行的,我可以排除getIndex吗?
-
只是为了清除它抱歉..使用spring 3.2,新方法注释@ModelAttribute..static.springsource.org/spring/docs/3.2.x/…
标签: java spring spring-mvc