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メソッドを呼び出します。

An Action is an adapter between the contents of an incoming HTTP request and the corresponding business logic that should be executed to process this request. The controller (RequestProcessor) will select an appropriate Action for each request, create an instance (if necessary), and call the execute method.

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

Actions must be programmed in a thread-safe manner, because the controller will share the same instance for multiple simultaneous requests. This means you should design with the following items in mind:

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

When an Action instance is first created, the controller will call setServlet with a non-null argument to identify the servlet instance to which this Action is attached. When the servlet is to be shut down (or restarted), the setServlet method will be called with a null argument, which can be used to clean up any allocated resources in use by this Action.

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

フィールドの概要
protected static java.util.Locale defaultLocale
          推奨されていません。 Locale.getDefaultを直接使ってください。 Struts 1.2.より後で削除されます。
@deprecated Use Locale.getDefault directly. This will be removed after 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.より後で削除されます。
@deprecated Use saveErrors(HttpServletRequest, ActionMessages) instead. This will be removed after 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のインスタンス。

An instance of TokenProcessor to use for token functionality.


defaultLocale

protected static java.util.Locale defaultLocale
推奨されていません。 Locale.getDefaultを直接使ってください。 Struts 1.2.より後で削除されます。
@deprecated Use Locale.getDefault directly. This will be removed after Struts 1.2.

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

The system default Locale.


servlet

protected ActionServlet servlet

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

The servlet to which we are attached.

コンストラクタの詳細

Action

public Action()
メソッドの詳細

getServlet

public ActionServlet getServlet()

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

Return the servlet instance to which we are attached.


setServlet

public void setServlet(ActionServlet servlet)

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

Set the servlet instance to which we are attached (if servlet is non-null), or release any allocated resources (if servlet is null).

パラメータ:
servlet - もしあれば、新しいコントローラサーブレット
@param servlet The new controller servlet, if any

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を返します。

Process the specified non-HTTP request, and create the corresponding non-HTTP response (or forward to another web component that will create it), with provision for handling exceptions thrown by the business logic. Return an {@link ActionForward} instance describing where and how control should be forwarded, or null if the response has already been completed.

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

The default implementation attempts to forward to the HTTP version of this method.

パラメータ:
mapping - このインスタンスを選択するために使用するActionMapping
@param mapping The ActionMapping used to select this instance
form - このリクエストのためのActionForm Bean(もしあれば)
@param form The optional ActionForm bean for this request (if any)
request - 処理中の非HTTPリクエスト
@param request The non-HTTP request we are processing
response - 生成する非HTTPレスポンス
@param response The non-HTTP response we are creating
例外:
java.lang.Exception - アプリケーションのビジネスロジックが例外をスローした場合
@exception Exception if the application business logic throws an 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を返します。

Process the specified HTTP request, and create the corresponding HTTP response (or forward to another web component that will create it), with provision for handling exceptions thrown by the business logic. Return an {@link ActionForward} instance describing where and how control should be forwarded, or null if the response has already been completed.

パラメータ:
mapping - このインスタンスを選択するために使用するActionMapping
@param mapping The ActionMapping used to select this instance
form - このリクエストのためのActionForm Bean(もしあれば)
@param form The optional ActionForm bean for this request (if any)
request - 処理中のHTTPリクエスト
@param request The HTTP request we are processing
response - 生成するHTTPレスポンス
@param response The HTTP response we are creating
例外:
java.lang.Exception - アプリケーションのビジネスロジックが例外をスローした場合
@exception Exception if the application business logic throws an exception
導入されたバージョン:
Struts 1.1

addMessages

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

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

Adds the specified messages keys into the appropriate request attribute for use by the <html:messages> tag (if messages="true" is set), if any messages are required. Initialize the attribute if it has not already been. Otherwise, ensure that the request attribute is not set.

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

addErrors

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

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

[訳者コメント: "attribute for use by the for use by the" は "attribute for use by the"が正しいです。 Bug#33876]
Adds the specified errors keys into the appropriate request attribute for use by the for use by the <html:errors> tag, if any messages are required. Initialize the attribute if it has not already been. Otherwise, ensure that the request attribute is not set.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
errors - エラーオブジェクト
@param errors Errors object
導入されたバージョン:
Struts 1.2.1

generateToken

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

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

Generate a new transaction token, to be used for enforcing a single request for a particular transaction.

パラメータ:
request - 処理中のリクエスト
@param request The request we are processing

getDataSource

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

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

Return the default data source for the current module.

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

getDataSource

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

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

Return the specified data source for the current module.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
key - <data-sources>要素内でデータソースを特定するためのキー
[訳者コメント: "<message-resources>" は "<data-sources>"が正しいと思われます(Bug#33876)が、 最新版ではこのメソッドそのものが削除されてしまいました。]
[訳者コメント: 原文が誤っているっぽいので大幅に意訳しました。(高橋)]
@param key The key specified in the <message-resources> element for the requested bundle
導入されたバージョン:
Struts 1.1

getErrors

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

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

Retrieves any existing errors placed in the request by previous actions. This method could be called instead of creating a new ActionMessages() at the beginning of an Action This will prevent saveErrors() from wiping out any existing Errors

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
戻り値:
リクエストに既に存在するエラー、 エラーがない場合は新たなActionMessagesオブジェクト
@return the Errors that already exist in the request, or a new ActionMessages object if empty.
導入されたバージョン:
Struts 1.2.1

getLocale

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

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

Return the user's currently selected Locale.

パラメータ:
request - 処理中のリクエスト
@param request The request we are processing

getMessages

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

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

Retrieves any existing messages placed in the request by previous actions. This method could be called instead of creating a new ActionMessages() at the beginning of an Action This will prevent saveMessages() from wiping out any existing Messages

パラメータ:
request - 処理中のリクエスト
@param request The servlet request we are processing
戻り値:
リクエストに既に存在するメッセージ、 メッセージがない場合新たなActionMessages
@return the Messages that already exist in the request, or a new ActionMessages object if empty.
導入されたバージョン:
Struts 1.2.1

getResources

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

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

Return the default message resources for the current module.

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

getResources

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

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

Return the specified message resources for the current module.

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

isCancelled

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

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

Returns true if the current form's cancel button was pressed. This method will check if the Globals.CANCEL_KEY request attribute has been set, which normally occurs if the cancel button generated by CancelTag was pressed by the user in the current request. If true, validation performed by an ActionForm's validate() method will have been skipped by the controller servlet.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
関連項目:
CancelTag

isTokenValid

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

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

Return true if there is a transaction token stored in the user's current session, and the value submitted as a request parameter with this action matches it. Returns false under any of the following circumstances:

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing

isTokenValid

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

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

[訳者コメント: "Returns false."は、 "Returns false under any of the following circumstances:"として訳しています。 Bug#33876]

Return true if there is a transaction token stored in the user's current session, and the value submitted as a request parameter with this action matches it. Returns false.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
reset - チェック後にトークンをリセットするか否か?
@param reset Should we reset the token after checking it?

resetToken

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

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

Reset the saved transaction token in the user's session. This indicates that transactional token checking will not be needed on the next request that is submitted.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing

saveErrors

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

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

Save the specified error messages keys into the appropriate request attribute for use by the <html:errors> tag, if any messages are required. Otherwise, ensure that the request attribute is not created.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
errors - エラーメッセージオブジェクト
@param errors Error messages object

saveErrors

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

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

Save the specified error messages keys into the appropriate request attribute for use by the <html:errors> tag, if any messages are required. Otherwise, ensure that the request attribute is not created.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing
errors - エラーメッセージオブジェクト
@param errors Error messages object
導入されたバージョン:
Struts 1.2

saveMessages

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

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

Save the specified messages keys into the appropriate request attribute for use by the <html:messages> tag (if messages="true" is set), if any messages are required. Otherwise, ensure that the request attribute is not created.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing.
messages - 保存するメッセージ nullまたは空のメッセージの場合、 リクエスト中に存在する全てのActionMessagesを削除します。
@param messages The messages to save. null or empty messages removes any existing ActionMessages in the request.
導入されたバージョン:
Struts 1.1

saveMessages

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

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

Save the specified messages keys into the appropriate session attribute for use by the <html:messages> tag (if messages="true" is set), if any messages are required. Otherwise, ensure that the session attribute is not created.

パラメータ:
session - メッセージを保存するセッション
@param session The session to save the messages in.
messages - 保存するメッセージ nullまたは空のメッセージの場合、 リクエスト中に存在する全てのActionMessagesを削除します。
@param messages The messages to save. null or empty messages removes any existing ActionMessages in the session.
導入されたバージョン:
Struts 1.2

saveToken

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

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

Save a new transaction token in the user's current session, creating a new session if necessary.

パラメータ:
request - 処理中のサーブレットリクエスト
@param request The servlet request we are processing

setLocale

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

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

Set the user's currently selected Locale into their HttpSession.

パラメータ:
request - 処理中のリクエスト
@param request The request we are processing
locale - 設定するユーザが選択したLocale、 またはサーバーのデフォルトLocaleを選択する場合はnull
@param locale The user's selected Locale to be set, or null to select the server's default Locale


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