Ich versuche, Spring MVC vor kurzem zu lernen. Es scheint, dass ich die Funktionen von @ModelAttribute Annotation und HttpSession nicht gut verstanden habe.Spring MVC - Unterschied zwischen HttpSession.setAttribute und model.addObject
ShoppingCart und Anzahl sind die Sitzungsattribute.
Das Problem ist in der DeleteFromCart-Methode. Ich bekomme die Anzahl von Sitzung, neu zuweisen es und überschreiben es in Sitzung. Aber ich kann nicht den aktualisierten Wert von count auf Jsp sehen. Das aktualisierte shoppingCart-Objekt kann jedoch aktualisiert angezeigt werden, obwohl ich das Sitzungsobjekt nicht überschreibe (da das Objekt dasselbe Objekt ist, das bereits in Sitzung ist).
Aber warum ist die Zählung nicht aktualisiert, obwohl ich es mit session.setAttribute überschreibe? Wenn ich dem Modell das neue count-Objekt hinzufüge (model.addObject ("count", count)), kann ich den aktualisierten Wert von count sehen. Warum liefert session.setAttribute nicht das gleiche Ergebnis?
Also im Grunde genommen; Bevor eine Controller-Methode aufgerufen wird, aktualisiert die Sitzung das Modell. Nach der Methode aktualisiert das Modell die Sitzung. Der einzige Moment, in dem das gleiche Attribut, das sowohl in Session als auch in Model enthalten ist, verschiedene Werte haben kann, ist in der Controller-Methode. Vielen Dank. – akcasoy