org.apache.struts.action
クラス Action

java.lang.Object
  拡張org.apache.struts.action.Action
直系の既知のサブクラス:
DefinitionDispatcherAction, DispatchAction, ForwardAction, IncludeAction, LocaleAction, ReloadDefinitionsAction, SwitchAction, TilesAction, ViewDefinitionsAction

public class Action
extends java.lang.Object

Actionは、受信した HTTPリクエストの内容とそのリクエストを処理するために実行されるべきビジネスロジックを適合させます。 コントローラ(RequestProcessor)は、 それぞれのリクエストに適切なActionを選択して(必要に応じて)インスタンスを生成し、 executeメソッドを呼び出します。

コントローラは同時に要求された複数のリクエストに対して同一のインスタンスを共有するため、 Actionはスレッドセーフとなるようにプログラムしなくてはいけません。 すなわち、次の項目に注意して設計すべきです。

Actionインスタンスが最初に生成される時、 コントローラはそのActionが関連付けられたサーブレットインスタンスを識別するため、 nullでない引数でsetServletメソッドを呼び出します サーブレットをシャットダウン(または再起動)する時、 Actionに割り当てられている使用中のリソースをすべてクリーンアップするため、 nullを引数にsetServletメソッドを呼び出します。

バージョン:
$Revision: 1.9 $ $Date: 2005/05/09 13:23:57 $
翻訳者:
横田 健彦, 棚澤 昌幸
校正者:
高橋 達男

フィールドの概要
protected static java.util.Locale defaultLocale
          推奨されていません。 Locale.getDefaultを直接使ってください。 Struts 1.2.より後で削除されます。
protected  ActionServlet servlet
          関連付けられたサーブレット。
private static TokenProcessor token
          トークン機能で使用されるTokenProcessorのインスタンス。
 
コンストラクタの概要
Action()
           
 
メソッドの概要
protected  void addErrors(javax.servlet.http.HttpServletRequest request, ActionMessages errors)
          メッセージが必要な場合は、 <html:messages>タグが使用できるように適切なリクエスト属性に指定されたエラーキーを追加します。
protected  void addMessages(javax.servlet.http.HttpServletRequest request, ActionMessages messages)
          (messages="true"が設定され)メッセージが必要な場合は、 <html:messages>タグで使用できるように適切なリクエスト属性に指定されたメッセージキーを追加します。
 ActionForward execute(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          指定されたHTTPリクエストを処理して、 対応するHTTPレスポンスを生成します。
 ActionForward execute(ActionMapping mapping, ActionForm form, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response)
          指定された非HTTPリクエストを処理して、 対応する非HTTPレスポンスを生成します。
protected  java.lang.String generateToken(javax.servlet.http.HttpServletRequest request)
          各トランザクションに対してリクエストを1回だけにするために使用する、 新しいトランザクショントークンを生成します。
protected  javax.sql.DataSource getDataSource(javax.servlet.http.HttpServletRequest request)
          現在のモジュールのデフォルトのデータソースを返します。
protected  javax.sql.DataSource getDataSource(javax.servlet.http.HttpServletRequest request, java.lang.String key)
          現在のモジュールの指定されたデータソースを返します。
protected  ActionMessages getErrors(javax.servlet.http.HttpServletRequest request)
          直前のアクションでリクエストに置かれた既存のエラーを全て取り出します。
protected  java.util.Locale getLocale(javax.servlet.http.HttpServletRequest request)
          ユーザが現在選択しているLocaleを返します。
protected  ActionMessages getMessages(javax.servlet.http.HttpServletRequest request)
          直前のアクションでリクエストに置かれた既存のメッセージを全て取り出します。
protected  MessageResources getResources(javax.servlet.http.HttpServletRequest request)
          現在のモジュールのデフォルトのメッセージリソースを返します。
protected  MessageResources getResources(javax.servlet.http.HttpServletRequest request, java.lang.String key)
          現在のモジュールの指定されたメッセージリソースを返します。
 ActionServlet getServlet()
          関連付けられたサーブレットのインスタンスを返します。
protected  boolean isCancelled(javax.servlet.http.HttpServletRequest request)
          現在のフォームのキャンセルボタンが押された場合にtrueを返します。
protected  boolean isTokenValid(javax.servlet.http.HttpServletRequest request)
          ユーザの現在のセッションにトランザクショントークンが保持され、 かつ、このアクションのリクエストパラメータとして送信された値がそのトークンとマッチする場合は、 trueを返します。
protected  boolean isTokenValid(javax.servlet.http.HttpServletRequest request, boolean reset)
          ユーザの現在のセッションにトランザクショントークンが保持され、 かつ、このアクションのリクエストパラメータとして送信された値がそのトークンとマッチする場合は trueを返します。
protected  void resetToken(javax.servlet.http.HttpServletRequest request)
          ユーザのセッションに保持されているトランザクショントークンをリセットします。
protected  void saveErrors(javax.servlet.http.HttpServletRequest request, ActionErrors errors)
          推奨されていません。 代わりにsaveErrors(HttpServletRequest, ActionMessages)を使用して下さい。 このメソッドはStruts 1.2.より後で削除されます。
protected  void saveErrors(javax.servlet.http.HttpServletRequest request, ActionMessages errors)
          何らかのメッセージが必要な場合、 <html:errors>タグが利用できるように、 適切なリクエスト属性に指定されたエラーメッセージキーを保存します。
protected  void saveMessages(javax.servlet.http.HttpServletRequest request, ActionMessages messages)
          (messages="true"が設定され)メッセージが必要な場合、 <html:messages>タグが使用できるように、 適切なリクエスト属性の中に指定されたメッセージキーを保存します。
protected  void saveMessages(javax.servlet.http.HttpSession session, ActionMessages messages)
          (messages="true"が設定され)メッセージが必要な場合、 <html:messages>タグが使用できるように、 適切なリクエスト属性の中に指定されたメッセージキーを保存します。
protected  void saveToken(javax.servlet.http.HttpServletRequest request)
          必要に応じて新たなセッションを生成し、 ユーザの現在のセッションに新しいトランザクショントークンを保存します。
protected  void setLocale(javax.servlet.http.HttpServletRequest request, java.util.Locale locale)
          HttpSessionにユーザが現在選択したLocaleを設定します。
 void setServlet(ActionServlet servlet)
          (servletがnullでない場合)関連付けられたサーブレットのインスタンスを設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

token

private static TokenProcessor token

トークン機能で使用されるTokenProcessorのインスタンス。


defaultLocale

protected static java.util.Locale defaultLocale
推奨されていません。 Locale.getDefaultを直接使ってください。 Struts 1.2.より後で削除されます。

システムのデフォルトLocale。


servlet

protected ActionServlet servlet

関連付けられたサーブレット。

コンストラクタの詳細

Action

public Action()
メソッドの詳細

getServlet

public ActionServlet getServlet()

関連付けられたサーブレットのインスタンスを返します。


setServlet

public void setServlet(ActionServlet servlet)

(servletがnullでない場合)関連付けられたサーブレットのインスタンスを設定します。 (servletがnullの場合)関連付けられたサーブレットのインスタンスを解放します。

パラメータ:
servlet - もしあれば、新しいコントローラサーブレット

execute

public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             javax.servlet.ServletRequest request,
                             javax.servlet.ServletResponse response)
                      throws java.lang.Exception

指定された非HTTPリクエストを処理して、 対応する非HTTPレスポンスを生成します。 (またはレスポンスを生成する他のWebコンポーネントにリクエストをフォワードします。) 併せてビジネスロジックがスローする例外のハンドリングも提供します。 コントロールをどこに/どうやってフォワードすべきかが記述されたActionForwardインスタンスもしくは、 レスポンスが既に完了している場合はnullを返します。

デフォルトの実装では、 このメソッドのHTTPバージョンにフォワードしようとします。

パラメータ:
mapping - このインスタンスを選択するために使用するActionMapping
form - このリクエストのためのActionForm Bean(もしあれば)
request - 処理中の非HTTPリクエスト
response - 生成する非HTTPレスポンス
例外:
java.lang.Exception - アプリケーションのビジネスロジックが例外をスローした場合
導入されたバージョン:
Struts 1.1

execute

public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.lang.Exception

指定されたHTTPリクエストを処理して、 対応するHTTPレスポンスを生成します。 (またはレスポンスを生成する他のWebコンポーネントにリクエストをフォワードします。) 併せてビジネスロジックがスローする例外のハンドリングも提供します。 コントロールをどこに/どうやってフォワードすべきかが記述されたActionForwardインスタンスもしくは、 レスポンスが既に完了している場合はnullを返します。

パラメータ:
mapping - このインスタンスを選択するために使用するActionMapping
form - このリクエストのためのActionForm Bean(もしあれば)
request - 処理中のHTTPリクエスト
response - 生成するHTTPレスポンス
例外:
java.lang.Exception - アプリケーションのビジネスロジックが例外をスローした場合
導入されたバージョン:
Struts 1.1

addMessages

protected void addMessages(javax.servlet.http.HttpServletRequest request,
                           ActionMessages messages)

(messages="true"が設定され)メッセージが必要な場合は、 <html:messages>タグで使用できるように適切なリクエスト属性に指定されたメッセージキーを追加します。 まだ属性が存在しない場合は、属性を初期化します。 それ以外の場合は、このリクエスト属性は設定されません。

パラメータ:
request - 処理中のサーブレットリクエスト
messages - メッセージオブジェクト
導入されたバージョン:
Struts 1.2.1

addErrors

protected void addErrors(javax.servlet.http.HttpServletRequest request,
                         ActionMessages errors)

メッセージが必要な場合は、 <html:messages>タグが使用できるように適切なリクエスト属性に指定されたエラーキーを追加します。 まだ属性が存在しない場合は、属性を初期化します。 それ以外の場合は、このリクエスト属性は設定されません。

パラメータ:
request - 処理中のサーブレットリクエスト
errors - エラーオブジェクト
導入されたバージョン:
Struts 1.2.1

generateToken

protected java.lang.String generateToken(javax.servlet.http.HttpServletRequest request)

各トランザクションに対してリクエストを1回だけにするために使用する、 新しいトランザクショントークンを生成します。

パラメータ:
request - 処理中のリクエスト

getDataSource

protected javax.sql.DataSource getDataSource(javax.servlet.http.HttpServletRequest request)

現在のモジュールのデフォルトのデータソースを返します。

パラメータ:
request - 処理中のサーブレットリクエスト
導入されたバージョン:
Struts 1.1

getDataSource

protected javax.sql.DataSource getDataSource(javax.servlet.http.HttpServletRequest request,
                                             java.lang.String key)

現在のモジュールの指定されたデータソースを返します。

パラメータ:
request - 処理中のサーブレットリクエスト
key - <data-sources>要素内でデータソースを特定するためのキー
導入されたバージョン:
Struts 1.1

getErrors

protected ActionMessages getErrors(javax.servlet.http.HttpServletRequest request)

直前のアクションでリクエストに置かれた既存のエラーを全て取り出します。 Actionの開始時にnew ActionMessages()という形で生成する代わりに、 このメソッドを呼ぶことができます。 これにより、saveErrors()メソッドで全ての既存のエラーを消すのを防げます。

パラメータ:
request - 処理中のサーブレットリクエスト
戻り値:
リクエストに既に存在するエラー、 エラーがない場合は新たなActionMessagesオブジェクト
導入されたバージョン:
Struts 1.2.1

getLocale

protected java.util.Locale getLocale(javax.servlet.http.HttpServletRequest request)

ユーザが現在選択しているLocaleを返します。

パラメータ:
request - 処理中のリクエスト

getMessages

protected ActionMessages getMessages(javax.servlet.http.HttpServletRequest request)

直前のアクションでリクエストに置かれた既存のメッセージを全て取り出します。 Actionの開始時にnew ActionMessages()という形で生成する代わりに、 このメソッドを呼ぶことができます。 これにより、saveMessages()メソッドで全ての既存のメッセージを消すことを防ぎます。

パラメータ:
request - 処理中のリクエスト
戻り値:
リクエストに既に存在するメッセージ、 メッセージがない場合新たなActionMessages
導入されたバージョン:
Struts 1.2.1

getResources

protected MessageResources getResources(javax.servlet.http.HttpServletRequest request)

現在のモジュールのデフォルトのメッセージリソースを返します。

パラメータ:
request - 処理中のサーブレットリクエスト
導入されたバージョン:
Struts 1.1

getResources

protected MessageResources getResources(javax.servlet.http.HttpServletRequest request,
                                        java.lang.String key)

現在のモジュールの指定されたメッセージリソースを返します。

パラメータ:
request - 処理中のサーブレットリクエスト
key - 要求されているメッセージのまとまりに対応する、 <message-resources>要素内でメッセージリソースを特定するためのキー
導入されたバージョン:
Struts 1.1

isCancelled

protected boolean isCancelled(javax.servlet.http.HttpServletRequest request)

現在のフォームのキャンセルボタンが押された場合にtrueを返します。 このメソッドは、 リクエスト属性Globals.CANCEL_KEYが設定されているかどうかをチェックします。 この属性が通常設定されるのは、 現在のリクエストにおいてCancelTagが生成したキャンセルボタンをユーザが押した時です。 trueの場合、 ActionFormvalidate()メソッドによるバリデーションを、 コントローラサーブレットはスキップします。

パラメータ:
request - 処理中のサーブレットリクエスト
関連項目:
CancelTag

isTokenValid

protected boolean isTokenValid(javax.servlet.http.HttpServletRequest request)

ユーザの現在のセッションにトランザクショントークンが保持され、 かつ、このアクションのリクエストパラメータとして送信された値がそのトークンとマッチする場合は、 trueを返します。 次のいずれかの場合はfalseを返します。

パラメータ:
request - 処理中のサーブレットリクエスト

isTokenValid

protected boolean isTokenValid(javax.servlet.http.HttpServletRequest request,
                               boolean reset)

ユーザの現在のセッションにトランザクショントークンが保持され、 かつ、このアクションのリクエストパラメータとして送信された値がそのトークンとマッチする場合は trueを返します。 次のいずれかの場合はfalseを返します。

パラメータ:
request - 処理中のサーブレットリクエスト
reset - チェック後にトークンをリセットするか否か?

resetToken

protected void resetToken(javax.servlet.http.HttpServletRequest request)

ユーザのセッションに保持されているトランザクショントークンをリセットします。 これは、 次に送信されるリクエストではトランザクショントークンをチェックする必要がないことを示します。

パラメータ:
request - 処理中のサーブレットリクエスト

saveErrors

protected void saveErrors(javax.servlet.http.HttpServletRequest request,
                          ActionErrors errors)
推奨されていません。 代わりにsaveErrors(HttpServletRequest, ActionMessages)を使用して下さい。 このメソッドはStruts 1.2.より後で削除されます。

何らかのメッセージが必要な場合、 <html:errors>タグが利用できるように、 適切なリクエスト属性に指定されたエラーメッセージキーを保存します。 それ以外の場合、 リクエスト属性が生成されないようにします。

パラメータ:
request - 処理中のサーブレットリクエスト
errors - エラーメッセージオブジェクト

saveErrors

protected void saveErrors(javax.servlet.http.HttpServletRequest request,
                          ActionMessages errors)

何らかのメッセージが必要な場合、 <html:errors>タグが利用できるように、 適切なリクエスト属性に指定されたエラーメッセージキーを保存します。 それ以外の場合、 リクエスト属性が生成されないようにします。

パラメータ:
request - 処理中のサーブレットリクエスト
errors - エラーメッセージオブジェクト
導入されたバージョン:
Struts 1.2

saveMessages

protected void saveMessages(javax.servlet.http.HttpServletRequest request,
                            ActionMessages messages)

(messages="true"が設定され)メッセージが必要な場合、 <html:messages>タグが使用できるように、 適切なリクエスト属性の中に指定されたメッセージキーを保存します。 それ以外の場合、リクエスト属性は設定されません。

パラメータ:
request - 処理中のサーブレットリクエスト
messages - 保存するメッセージ nullまたは空のメッセージの場合、 リクエスト中に存在する全てのActionMessagesを削除します。
導入されたバージョン:
Struts 1.1

saveMessages

protected void saveMessages(javax.servlet.http.HttpSession session,
                            ActionMessages messages)

(messages="true"が設定され)メッセージが必要な場合、 <html:messages>タグが使用できるように、 適切なリクエスト属性の中に指定されたメッセージキーを保存します。 それ以外の場合、セッション属性は生成されません。

パラメータ:
session - メッセージを保存するセッション
messages - 保存するメッセージ nullまたは空のメッセージの場合、 リクエスト中に存在する全てのActionMessagesを削除します。
導入されたバージョン:
Struts 1.2

saveToken

protected void saveToken(javax.servlet.http.HttpServletRequest request)

必要に応じて新たなセッションを生成し、 ユーザの現在のセッションに新しいトランザクショントークンを保存します。

パラメータ:
request - 処理中のサーブレットリクエスト

setLocale

protected void setLocale(javax.servlet.http.HttpServletRequest request,
                         java.util.Locale locale)

HttpSessionにユーザが現在選択したLocaleを設定します。

パラメータ:
request - 処理中のリクエスト
locale - 設定するユーザが選択したLocale、 またはサーバーのデフォルトLocaleを選択する場合はnull


このドキュメントは、Ja-Jakartaにより訳されました。コメントがある場合は、report@jajakarta.orgまでお願いします。
Copyright (C) 2000-2004 - Apache Software Foundation