首先,
@SessionAttribute不必使用http会话。它使用
SessionAttributeStore可以将任何内容作为后备存储的。仅默认实现使用http会话。
您的代码无法按预期工作的原因在于
@SessionAttribute工作方式。
在调用控制器方法之前
@SessionAttributes,您需要
{"warenkorb","count"}从会话中读取中列出的所有内容,并将其添加到模型中。
方法返回后,将使用该方法中 已添加到模型中的所有内容更新会话。
.addObject("count", count)
->计数添加到模型,然后添加到会话。
session.setAttribute("count", count)
-> count添加到会话中,但不添加到模型中。在下一次调用任何控制器方法之前,它将被添加到模型中。但是就目前而言,该模型仍旧
count。而模型就是添加到请求中的东西。而且,如果可以在请求范围内找到属性,则jsp不会在乎会话中的内容。
当您使用
@SessionAttributes和
@ModelAttribute(或通常使用Spring
MVC)时,请避免使用
HttpSession或
HttpRequest。甚至
HttpResponse用途有限。拥抱
SpringMVC而不是美丽:)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)