前提・実現したいこと
Springを使用した簡易的なショッピングサイトを自主学習で作成しており、
画面に表示する商品リストをセッション毎に管理したいと思っています。
セッションの管理には「@SessionAttributes」を使用しようと考えています。
発生している問題・エラーメッセージ
IEのAブラウザで画面に商品リストを表示(数点選択した商品が表示されている。)
Bブラウザ(新規のセッションで開く)を開くとAブラウザで選択した商品が表示されてしまう。
(Bブラウザでは未選択)
該当のソースコード
Javaで作成しています。 allListを画面に表示しています。このリストをセッション管理したいです。 ■Controllerクラスの実装 @Controller @SessionAttributes(types = {SalesForm.class, Item.class}) @RequestMapping(value = "/system") public class SalesSystemController { SalesForm salesform = new SalesForm(); model.addAttribute("allList", salesform.getAllList()); ■SalesFormクラスの実装 /** 明細追加データ */ private List<Item> allList = new ArrayList<Item>(); public List<Item> getAllList() { return allList; } public List<Item> addToAllList(Item item) { allList.add(item); return allList; } ■Itemクラスの実装 /** 商品データ全体を保持するクラス*/ public class Item { /** 商品ID */ private String syouhinId; /** 商品名 */ private String syouhinname; /** 単価 */ private int tanka; /** 点数 */ private String tensu; /** 小計 */ private int sum; public Item(String syouhinId, String syouhinname, int tanka, String tensu, int sum) { this.syouhinId = syouhinId; this.syouhinname = syouhinname; this.tanka = tanka; this.tensu = tensu; this.sum = sum; }
試したこと
SalesFormでstaticで宣言されていたメソッドはstaticを削除しました。
セッション管理したいオブジェクトallListはList<Item>なので
以下のように2クラス追加しています。
@SessionAttributes(types = {SalesForm.class, Item.class})
補足情報(FW/ツールのバージョンなど)
必要な情報があれば追加しますのでコメントいただけると幸いです。
回答2件
あなたの回答
tips
プレビュー