Action
概要
Actionはページ生成と並行する必然性がない処理を行います。 主な目的は、スクリーン上のデータの加工、データベースの更新です。
作成方法
Action インターフェイスを実装したクラスを作成します。 あるいは、 AbstractAction を継承します。
リファレンス
default-to
- key s
- パイプkeyが空であれば、文字列sを設定します。
expand
- key1 key2
- パイプkey1から値を取り出し、コレクションか配列であればパイプkey2に全ての要素を展開します。
push
commit-messages
このActionの使用例、しくみについてはエラー処理とメッセージを参照してください。
- 引数なし
- メッセージをコミットし、次のページへ1回だけ引き継ぎます。
- 'true'|'false'
- メッセージをコミットします。 引数がtrueの場合は次のページに1回だけ引継ぎますが、falseの場合はそのページ限りとなります。
reverse
- key
- パイプkeyの値を全て取り出し、逆順に追加します。
forward
- uri
- 現在のリクエストをuriに転送します。 uriを'/'で開始する場合は、コンテキストからの絶対パスとなり、そうでない場合は相対パスです。
redirect
- uri
- uriにリダイレクトするよう、クライアントに送ります。
use-attribute
scopeは'request'|'session'|'application'で表されるスコープで、 それぞれSunのサーブレット仕様のリクエスト、セッション、アプリケーションスコープに対応します。
- name
- name scopeでスコープに'request'を使用するのと同じ意味になります。
- name scope
- name scope keyでkeyにnameお同じ値を渡すのと同じ意味になります。
- name scope key
- 名前keyのパイプに値が存在する場合はパイプの値を指定されたスコープの名前nameの属性に設定します。 名前keyのパイプに値が存在せず、指定されたスコープに名前nameの属性が存在すれば、名前keyのパイプに追加します。 いずれでもない場合は、何もしません。
remove-attribute
scopeは'request'|'session'|'application'で表されるスコープで、 それぞれSunのサーブレット仕様のリクエスト、セッション、アプリケーションスコープに対応します。
- name
- リクエストスコープの名前nameの属性を削除します。
- name scope
- 指定されたスコープの名前nameの属性を削除します。
load-form
scopeは'request'|'session'|'application'で表されるスコープで、 それぞれSunのサーブレット仕様のリクエスト、セッション、アプリケーションスコープに対応します。
このActionの使用例、しくみについてはHTMLフォームを参照してください。
- type
- type scapeでスコープに'request'を使用するのと同じ意味になります。
- type scope
- type scope keyでkeyにtypeと同じ文字列を使用するのと同じ意味になります。
- type scope key
- type scope key prefixでprefixにkeyと同じ文字列を使用するのと同じ意味になります。
- type scope key prefix
- type scope key prefix 'validate'|'no-validation'で最後の引数を'validation'とするのと同じ意味になります。
- type scope key prefix 'validate'|'no-validation'
- 名前keyのパイプにフォームが存在する場合はパイプの値を指定されたスコープの名前keyの属性に設定します。
名前keyのパイプにフォームが存在せず、指定されたスコープに名前keyの属性にフォームが存在すれば、名前keyのパイプに追加します。
いずれでもない場合は、typeで指定されるフォームが作成され、指定されたスコープの名前keyの属性と、名前keyのパイプに追加されます。
その後、フォームに保持されている全てのパラメータについて、 パラメータ名の先頭にprefix+'.'という文字列を付けた名前のパイプに値を追加します。 最後の引数が'validate'であればバリデーションを行い、'no-validation'であればバリデーションをしません。
save-form
scopeは'request'|'session'|'application'で表されるスコープで、 それぞれSunのサーブレット仕様のリクエスト、セッション、アプリケーションスコープに対応します。
このActionの使用例、しくみについてはHTMLフォームを参照してください。
- type
- type scapeでスコープに'request'を使用するのと同じ意味になります。
- type scope
- type scope keyでkeyにtypeと同じ文字列を使用するのと同じ意味になります。
- type scope key
- type scope key 'marshal'|'no-marshal'で最後の引数を'marshal'とするのと同じ意味になります。
- type scope key 'marshal'|'no-marshal'
- type scope key 'marshal'|'no-marshal' 'validate'|'no-validation'で最後の引数を'validate'とするのと同じ意味になります。
- type scope key 'marshal'|'no-marshal' 'validate'|'no-validation'
- 名前keyのパイプにフォームが存在する場合はパイプの値を指定されたスコープの名前keyの属性に設定します。
名前keyのパイプにフォームが存在せず、指定されたスコープに名前keyの属性にフォームが存在すれば、名前keyのパイプに追加します。
いずれでもない場合は、typeで指定されるフォームが作成され、指定されたスコープの名前keyの属性と、名前keyのパイプに追加されます。
その後、現在のページに渡されたリクエストパラメータをフォームに格納します。 最後から2番目の引数が'marshal'の場合は正規化を行い、'no-marshal'であれば正規化を行いません。 最後の引数が'validate'であればバリデーションを行い、'no-validation'であればバリデーションをしません。

