我想要实现这样的:春天 - SessionAttribute问题
@Controller
@SessionAttributes("promotion")
class PromotionController {
@RequestMapping("showPromo")
void showPromotionInfo(
@RequestParam("promId") String promotionId,
@ModelAttribute Promotion promotion, Errors errors
) {
promotion = Promotions.get(promotionId);
if (promotion == null || promotion.validates() == false) {
errors.reject("promotion.invalid");
}
return "prom";
}
}
的代码是无效的,不会工作,并有一些坏的错误,但我不知道怎么写的更好。
当用户访问URL“showPromo?promId = 15”时,控制器应验证促销是否有效(过期/不存在/等)。如果它是有效的 - 它应该显示它的信息并将促销保存到模型和会话中。如果不是 - 它应该显示一些关于促销无效的错误。
问题是,我需要在会话中保存促销(针对多个请求),并且不想使用直接会话管理。 Spring现在有可能吗?或者我做错了什么?
您能否使用Spring 3为我的问题提供最佳解决方案?
在此先感谢。
补充:
好吧,我想我会写下来的问题点:当在会议上没有对象,所以不能用@ModelAttribute抛出一个错误,如绑定
- “在会话中找不到对象”。并且在任何地方都没有“可选”参数。
- 我无法在参数中使用@ModelAttribute,因为我正在覆盖该促销对象。正确的方法应该是model.addAttribute(“促销”,促销)。但我也需要有一种方法来提供错误,而且我看不到使用model.addAttribute提供它们的方法。
非常感谢。这正是我想知道的。然而,这段代码看起来非常令人沮丧(我的意思是基于字符串的属性名称)......可以有更好的方法来做到这一点吗? – bezmax 2010-06-15 12:23:38