3
我在Spring MVC 3上有兩種不同形式的頁面(有兩個不同的提交),並且我有@ModelAttribute方法的問題。當我在同一個控制器上有兩個控制器時,它們並不總是被執行使模型成爲NULL。在同一個@Controller中彈出多個@ModelAttribute方法
代碼:
@Controller
@RequestMapping(value = "/session/admin/permission/{userId}")
public class PermissionController {
@Autowired
private UserManager userManager;
@ModelAttribute("passwordValidation")
private PasswordValidation getPasswordModel(){
return new PasswordValidation();
}
@ModelAttribute("user")
private User getUserModel(@PathVariable("userId") String userId){
//This is not executed
return userManager.getUser(userId);
}
@ModelAttribute("permissionsAvailable")
private PermissionsAvailable getPermissionsModel(@ModelAttribute("user") User user) {
return new PermissionsAvailable();
}
@RequestMapping(method = RequestMethod.GET)
public String adminPermission(){
return "/security/permission";
}
@RequestMapping(method = RequestMethod.POST, params="changeRoles")
public String modifyPermission(@ModelAttribute("permissionsAvailable") PermissionsAvailable permissions,
HttpServletRequest request, @ModelAttribute("user") User user,
final RedirectAttributes redirectAttributes){
//Modify something
}
@RequestMapping(method = RequestMethod.POST, params="changePassword")
public String modifyPassword(
@ModelAttribute("passwordValidation") PasswordValidation passwordValidation,
@ModelAttribute("user") User user,
HttpServletRequest request, BindingResult bindingResult,
final RedirectAttributes redirectAttributes){
return "newpage";
}
}
不知道爲什麼,有時候一切正常的話,執行每一個方法,但有時他們不執行。
更新:我有兩個不同的控制器具有相同的問題,所以它必須是春天的錯誤或我做錯了什麼。
謝謝。
那是行得通的!看來你是正確的,它不被支持! – droidpl