jp.terasoluna.fw.web.struts.actions
クラス ActionEx

java.lang.Object
  上位を拡張 org.apache.struts.action.Action
      上位を拡張 jp.terasoluna.fw.web.struts.actions.ActionEx
直系の既知のサブクラス:
AbstractBLogicAction, ClearSessionAction, DispatchAction, ForwardAction, LogoffAction, MakeSessionDirectoryAction, ReloadCodeListAction

public abstract class ActionEx
extends org.apache.struts.action.Action

アクション基底クラス。

StrutsのActionに、ログ出力機能・トランザクション トークンチェック機能を追加している。
これらの機能を利用する場合は、本クラスを継承すること。
本クラスを利用するためには、doExecute()メソッドを オーバライドしたサブクラスを作成し、struts-config.xmlの <action>要素内のtype属性でクラス名を設定する。
トランザクショントークンチェックとは、サブミット2度押しや、 ブラウザの「戻る」ボタンを使った重複サブミットを防ぐ機能である。
トランザクショントークンチェックを行うためには、以下の設定を 行う必要がある。

ActionExを使用した場合、saveToken()に よって自動的にトークンが保存されるが、保存しない場合には以下の設定を行う 必要がある。
トランザクショントークンチェックを含めたstruts-config.xml 及びBean定義ファイルの設定例を、下記に示す。

サブクラスLogoffActionのBean定義ファイルの設定例

  <bean name="/admin/Logout" scope="prototype"
      class="jp.terasoluna.fw.web.struts.actions.LogoffAction">
    <property property="tokenCheck">
      <value>true</value>
    </property>
    <property property="saveToken">
      <value>false</value>
    </property>
  </bean>
  

サブクラスLogoffActionのstruts-config.xmlの設定例

  <action path="/admin/Logout"
      name="logonSampleForm"
      scope="session"
      parameter="/sub/logout.jsp">
    <forward name="txtoken-error" modeule="/sub"
        path="/doubleRegistError.jsp"/>
  </action>
  
なお、内部要素のforwardで、pathの先頭にスラッシュ "/"を付け、moduleを設定した場合、 モジュールごとの相対パスで遷移することができる。
また、本機能をサブクラスで継承する場合、doExecute()メソッドを エントリポイントとして実装する必要がある。
アクションマッピングの設定については、ActionMappingExを参照のこと。

関連項目:
ActionMappingEx

フィールドの概要
protected static String FORWARD_TXTOKEN_ERROR
          トランザクショントークンチェックエラー時の論理フォワード名。
 
クラス org.apache.struts.action.Action から継承されたフィールド
defaultLocale, servlet
 
コンストラクタの概要
ActionEx()
           
 
メソッドの概要
protected  void addErrors(javax.servlet.http.HttpSession session, org.apache.struts.action.ActionMessages errors)
          セッションから、Globals.ERROR_KEYをキーとして ActionMessagesを取得し、追加後に再度格納を行う。
protected  void addMessages(javax.servlet.http.HttpSession session, org.apache.struts.action.ActionMessages messages)
          セッションから、Globals.MESSAGE_KEYをキーとして ActionMessagesを取得し、追加後に再度格納を行う。
abstract  org.apache.struts.action.ActionForward doExecute(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          アクションを実行する抽象メソッド。
 org.apache.struts.action.ActionForward execute(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          アクションを実行する。
protected  boolean isSaveToken()
          トランザクショントークン保存フラグを取得する
protected  boolean isTokenCheck()
          トランザクショントークンチェックフラグを取得する。
protected  boolean processTokenCheck(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest req)
          トランザクショントークンのチェックを行う。
 void setSaveToken(boolean saveToken)
          トランザクショントークン保存フラグを設定する。
 void setTokenCheck(boolean tokenCheck)
          トランザクショントークンチェックフラグを設定する。
 
クラス org.apache.struts.action.Action から継承されたメソッド
addErrors, addMessages, execute, generateToken, getDataSource, getDataSource, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FORWARD_TXTOKEN_ERROR

protected static final String FORWARD_TXTOKEN_ERROR
トランザクショントークンチェックエラー時の論理フォワード名。

関連項目:
定数フィールド値
コンストラクタの詳細

ActionEx

public ActionEx()
メソッドの詳細

setTokenCheck

public void setTokenCheck(boolean tokenCheck)
トランザクショントークンチェックフラグを設定する。

パラメータ:
tokenCheck - トランザクショントークンチェックフラグ

setSaveToken

public void setSaveToken(boolean saveToken)
トランザクショントークン保存フラグを設定する。

パラメータ:
saveToken - トランザクショントークン保存フラグ

isTokenCheck

protected boolean isTokenCheck()
トランザクショントークンチェックフラグを取得する。

戻り値:
トランザクショントークンチェックフラグ

isSaveToken

protected boolean isSaveToken()
トランザクショントークン保存フラグを取得する

戻り値:
トランザクショントークン保存フラグ

execute

public org.apache.struts.action.ActionForward execute(org.apache.struts.action.ActionMapping mapping,
                                                      org.apache.struts.action.ActionForm form,
                                                      javax.servlet.http.HttpServletRequest request,
                                                      javax.servlet.http.HttpServletResponse response)
                                               throws Exception
アクションを実行する。

サブクラスで実装されたdoExecute()メソッド呼び出し前に、 アクションフォームのmodified属性をfalseに書き換える。
doExecute()の実行後、アクションフォームの フィールド値に変更があればリクエスト属性にSKIP_POPULATE を保存し、RequestProcessorExで processPopulate()の処理を抑制している。

オーバーライド:
クラス org.apache.struts.action.Action 内の execute
パラメータ:
mapping - このアクションに紐づいたアクションマッピング
form - アクションフォーム
request - リクエスト情報
response - レスポンス情報
戻り値:
遷移先情報
例外:
Exception - アクション実行時の例外

doExecute

public abstract org.apache.struts.action.ActionForward doExecute(org.apache.struts.action.ActionMapping mapping,
                                                                 org.apache.struts.action.ActionForm form,
                                                                 javax.servlet.http.HttpServletRequest request,
                                                                 javax.servlet.http.HttpServletResponse response)
                                                          throws Exception
アクションを実行する抽象メソッド。

このメソッドをサブクラスでオーバーライドし、 アクションの機能を拡張する。

パラメータ:
mapping - このアクションに紐づいたアクションマッピング
form - アクションフォーム
request - リクエスト情報
response - レスポンス情報
戻り値:
遷移先情報
例外:
Exception - 予期しない例外

processTokenCheck

protected boolean processTokenCheck(org.apache.struts.action.ActionMapping mapping,
                                    javax.servlet.http.HttpServletRequest req)
トランザクショントークンのチェックを行う。

パラメータ:
mapping - アクションマッピング
req - HTTPリクエスト
戻り値:
トークンが正当であれば true

addErrors

protected void addErrors(javax.servlet.http.HttpSession session,
                         org.apache.struts.action.ActionMessages errors)
セッションから、Globals.ERROR_KEYをキーとして ActionMessagesを取得し、追加後に再度格納を行う。

パラメータ:
session - セッション
errors - エラーメッセージ情報

addMessages

protected void addMessages(javax.servlet.http.HttpSession session,
                           org.apache.struts.action.ActionMessages messages)
セッションから、Globals.MESSAGE_KEYをキーとして ActionMessagesを取得し、追加後に再度格納を行う。

パラメータ:
session - セッション
messages - メッセージ情報


Copyright © 2012. All Rights Reserved.