0
struts環境におけるスコープ利用の仕方について
【前提条件】
1.
Strutsを利用
2.
オリジナルクラスとして
CartForm
Item
ShoppingCart
クラスが存在しています。
3.
sessionスコープ内にShoppinCartクラスのcartオブジェクトが格納されています。
【質問内容】
strutsを学習中です。strutsのデータ渡しなど基本的な箇所の質問かもしれませんが、
分かる方がいらっしゃれば助言お願いいたします。
下記本の例題「★」の箇所なんですが、セッションスコープから取り出したcartオブジェクトには、
add()を使いItemクラスのオブジェクトを格納することができます。
下記例題では、cartオブジェクトにitemオブジェクトを格納して、
セッションスコープなどに格納処理をせずActionServletに処理を返しているんですが、
forward先でcartオブジェクトを取り出すと、ここでaddされたitemオブジェクトの内容を確認することができます。
なぜ、下記ソース内でcartオブジェクトを「スコープに格納する処理が無い」にも関わらず、
forward先で追加されたitemオブジェクトの内容を確認することができるのでしょうか?
//////////////////////////////////////////////////////
〜import省略〜
public class AddItemAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
CartForm cartForm = (CartForm) form;
Item item = SearchItemLogic.findById(cartForm.getId());
HttpSession session = request.getSession();
ShoppingCart cart = (ShoppingCart)session.getAttribute("cart");
cart.add(item); //★
return mapping.findForward("success");
}
}