public abstract class ActionEx
extends org.apache.struts.action.Action
StrutsのActionに、ログ出力機能・トランザクション
トークンチェック機能を追加している。
これらの機能を利用する場合は、本クラスを継承すること。
本クラスを利用するためには、doExecute()メソッドを
オーバライドしたサブクラスを作成し、struts-config.xmlの
<action>要素内のtype属性でクラス名を設定する。
トランザクショントークンチェックとは、サブミット2度押しや、
ブラウザの「戻る」ボタンを使った重複サブミットを防ぐ機能である。
トランザクショントークンチェックを行うためには、以下の設定を
行う必要がある。
サブクラス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の設定例
なお、内部要素のforwardで、pathの先頭にスラッシュ
"/"を付け、moduleを設定した場合、
モジュールごとの相対パスで遷移することができる。
<action path="/admin/Logout"
name="logonSampleForm"
scope="session"
parameter="/sub/logout.jsp">
<forward name="txtoken-error" modeule="/sub"
path="/doubleRegistError.jsp"/>
</action>
また、本機能をサブクラスで継承する場合、doExecute()メソッドを
エントリポイントとして実装する必要がある。
アクションマッピングの設定については、ActionMappingExを参照のこと。
ActionMappingEx
修飾子とタイプ | フィールドと説明 |
---|---|
protected static String |
FORWARD_TXTOKEN_ERROR
トランザクショントークンチェックエラー時の論理フォワード名。
|
コンストラクタと説明 |
---|
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)
トランザクショントークンチェックフラグを設定する。
|
addErrors, addMessages, execute, generateToken, getDataSource, getDataSource, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet
public void setTokenCheck(boolean tokenCheck)
tokenCheck
- トランザクショントークンチェックフラグpublic void setSaveToken(boolean saveToken)
saveToken
- トランザクショントークン保存フラグprotected boolean isTokenCheck()
protected boolean isSaveToken()
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()の処理を抑制している。
execute
クラス内 org.apache.struts.action.Action
mapping
- このアクションに紐づいたアクションマッピングform
- アクションフォームrequest
- リクエスト情報response
- レスポンス情報Exception
- アクション実行時の例外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
- 予期しない例外protected boolean processTokenCheck(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest req)
mapping
- アクションマッピングreq
- HTTPリクエストtrue
protected void addErrors(javax.servlet.http.HttpSession session, org.apache.struts.action.ActionMessages errors)
session
- セッションerrors
- エラーメッセージ情報protected void addMessages(javax.servlet.http.HttpSession session, org.apache.struts.action.ActionMessages messages)
session
- セッションmessages
- メッセージ情報Copyright © 2015. All Rights Reserved.