Top > SAStrutsあれこれ > 2-7 二重のお買い物を防止しよう

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
 
 
 
import org.apache.struts.util.TokenProcessor;
import org.seasar.struts.util.RequestUtil;
------------
//トークンを設定します。
TokenProcessor.getInstance().saveToken(RequestUtil.getRequest());
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
!
 
 
 
-
|
|
|
|
|
|
|
!
import org.apache.struts.util.TokenProcessor;
import org.seasar.struts.util.RequestUtil;
------------
    // 商品詳細画面の「この商品をカートに入れる」ボタンクリック時のアクション
    @Execute(validator = false)
    public String add() {
        //リクエストの商品番号に該当する商品情報をセッションから取得して、
        //カートに格納します。
        CatalogDto dto = catalogForm.catalogList.findById(catalogOrderForm.id);
        catalogOrderForm.catalogList.add(dto);
        
        //トークンを設定します。
        TokenProcessor.getInstance().saveToken(RequestUtil.getRequest());
        
        return "cart.jsp";
    }
    
    //「数量変更」ボタンクリック時のアクション
    @Execute(validate="isValidateCount", input="cart.jsp")
    public String change() {
        //個数0の商品は、カートから削除します。
        catalogOrderForm.catalogList.compress();
        
        //トークンを設定します。
        TokenProcessor.getInstance().saveToken(RequestUtil.getRequest());
        
        return "cart.jsp";
    }
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 
 
 
 
 
-
|
|
-
|
|
!
|
|
|
|
|
|
|
!
import org.apache.struts.util.TokenProcessor;
import org.seasar.struts.util.RequestUtil;
--------------------------------------------
    //「購入する」ボタンクリック時のアクション
    //本メソッド正常終了時にセッションに格納されていたカートは削除されます。
    @Execute(input="cart.jsp", removeActionForm=true)
    public String commit() {
        
        //1)トークン判定処理
        if (!TokenProcessor.getInstance().isTokenValid(RequestUtil.getRequest(), true)) {
            //不正なトークンの場合。エラー画面を表示
            return "twice.jsp";
        }
        
        //購入テーブルと購入詳細テーブルへのデータ追加処理
        catalogOrderService.insert(catalogOrderForm.userid, catalogOrderForm.catalogList);
        
        //セッションを破棄する前に、表示用ユーザIDをリクエストスコープにコピーします。
        userid = new String(catalogOrderForm.userid);
        return "commit.jsp";
    }
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 
 
 
 
 
 
 
 
 
 
<html>
<body>
2度続けてボタンが押されたか、リロードされたようです。一回だけお買い上げいただくように処理しました。<br>
もう一度同じ内容でお買い物される際はお手数ですが、商品をカートに入れていただいて処理して下さい。<br>
 
お買い上げありがとうございました。
 
<s:link href="/catalog/list">商品一覧へ戻る</s:link>
</body>
</html>

添付ファイル: filesupersample2-7_2.jpg 428件 [詳細] filesupersample2-7_1.jpg 423件 [詳細]

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:25:54 (2928d)