我使用下面的代碼綁定的用戶模型[待視圖/ JSP使用]:春:適時/後期綁定@ModelAttribute
@ModelAttribute("users")
public Collection<User> populateUsers() {
return userService.findAllUsers();
}
但有時我只需要加載幾個用戶有特殊的作用,這我用下面的代碼嘗試:
int role = 2; //this is being set in a Controller within a method @RequestMapping(method = RequestMethod.GET) public String list(
@ModelAttribute("users")
public Collection<User> populateUsers() {
if(role == 2)
return userService.findAllUsersByRole(role);
else
return userService.findAllUsers();
}
但populateUsers總是被調用在控制器開始,之前的角色列表中的方法設置,你能請幫助我如何設置用戶[類似於後期綁定]
個問候
- 添加代碼
@Controller
@RequestMapping("/users")
public class UserController {
@Autowired
UserService userService;
@RequestMapping(method = RequestMethod.POST)
public String create(@Valid User user, BindingResult bindingResult,
Model uiModel, HttpServletRequest httpServletRequest) {
if (bindingResult.hasErrors()) {
uiModel.addAttribute("user", user);
addDateTimeFormatPatterns(uiModel);
return "users/create";
}
uiModel.asMap().clear();
userService.saveUser(user);
return "redirect:/users/"
+ encodeUrlPathSegment(user.getId().toString(),
httpServletRequest);
}
@RequestMapping(params = "form", method = RequestMethod.GET)
public String createForm(Model uiModel) {
uiModel.addAttribute("user", new User());
addDateTimeFormatPatterns(uiModel);
return "users/create";
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String show(@PathVariable("id") Long id, Model uiModel) {
addDateTimeFormatPatterns(uiModel);
uiModel.addAttribute("user", userService.findUser(id));
return "users/show";
}
@RequestMapping(value = "/{id}", params = "form", method = RequestMethod.GET)
public String updateForm(@PathVariable("id") Long id, Model uiModel) {
uiModel.addAttribute("user", userService.findUser(id));
addDateTimeFormatPatterns(uiModel);
return "users/update";
}
@ModelAttribute("users")
public Collection<User> populateUsers() {
return userService.findAllUsers();
}
@ModelAttribute("userroles")
public Collection<UserRole> populateUserRoles() {
return Arrays.asList(UserRole.class.getEnumConstants());
}
void addDateTimeFormatPatterns(Model uiModel) {
uiModel.addAttribute(
"user_modified_date_format",
DateTimeFormat.patternForStyle("M-",
LocaleContextHolder.getLocale()));
}
}
@PathVariable( 「ID」)長的id是我需要populateUsers的ID,希望這是顯而易見的。
你可以完成放置代碼來幫助 – Jhonathan 2012-02-18 04:30:06