| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[Struts2 設定項目 - リクエスト処理]]=={{include_html [[banner_html]], "!Struts"}}
===Interceptor 設定===
Interceptorsは、生成されたInterceptor"Stack"と共に、連鎖使用することができます。もし、あるアクションがクライアントの信用証明のチェック、アクションのログ、アクションの処理時間を必要とする場合、これらのルーチンな処理は、同じInterceptor Stackの部分として構築できます。
Interceptorsは、Javaのクラスとして実装され、それぞれのInterceptorは、一意なクラス名を持ちます。Interceptorsへの参照を簡単にするため、それぞれのクラスはフレームワークに簡略名を登録することができます。Interceptorsは、[[Java]]のクラスとして実装され、それぞれのInterceptorは、一意なクラス名を持ちます。Interceptorsへの参照を簡単にするため、それぞれのクラスはフレームワークに簡略名を登録することができます。
'''Interceptorsの登録'''
=====Action Mappings=====
アクションマッピングは、result types、exception handlers、interceptor stackを指定することができる。しかし、name 属性だけが必須である。その他の属性はpackage 属性だけが必須である。[[その他]]の属性はpackage スコープで提供することもできる。
'''Logon Action'''
<action name="Logon" class="tutorial.Logon">
<result type="redirect-action">[[Menu]]</result>
<result name="input">/tutorial/Logon.jsp</result>
</action>
=====Action Names=====
Webアプリケーションにて、name属性は、ブラウザ[[Webアプリケーション]]にて、name属性は、ブラウザ(もしくは他のHTTPクライアント)のロケーションリクエストの一部にマッチする。フレームワークはホストとアプリケーション名、拡張子を取り除いた真ん中部分にマッチさせる。なので、http://www.planetstruts.org/struts2-mailreader/Welcome.do というリクエストは、Welcome アクションにマップされる。
アプリケーションの中では、アクションへのリンクは、普通 [[Struts ]] タグ によって生成される。このタグはアクションを名前で指定することができ、フレームワークはデフォルトの拡張子や必要なその他の物をその名前から生成する。
'''Hello Form'''
<s:form action="Hello">
これは、"editCrud"への参照はCrudアクションクラスのインスタンスのeditメソッドを呼び出す。同様に、"deleteCrud"への参照は、変わりにdeleteメソッドを呼び出す。
他の一般的なアプローチは、メソッド名にプレフィックスを付けたり、感嘆符やアンダースコアやその他の特別な文字でメソッド名を分割したりする。他の一般的なアプローチは、メソッド名にプレフィックスを付けたり、感嘆符やアンダースコアや[[その他]]の特別な文字でメソッド名を分割したりする。
* "action=Crud_input"
* "action=Crud_delete"
* Crud_delete-conversion.xml
※"!"をポストフィックスとして利用することは、WebWork2では可能だが、異なる実装が施された。古い実装を利用するには、struts.properties file にて、struts.enable.DynamicMethodInvocation=TRUE T[[R]]UE と設定する。その代わりにワイルドカードを利用するのをこのむのなら、struts.enable.DynamicMethodInvocation=FALSE と設定する。
=====ActionSupport Default=====
アクションマッピングのclass属性がブランクのままである場合、com.opensymphony.xwork.ActionSupport が既定値として利用される。
=====Post-Back Default=====
アクションにリンクを貼ることは、ページにリンクを貼るよりよい方法です。アクションにリンクを貼ることはサーバーがページを生成することをカプセル化し、アクションクラスがページの生成の前に実行されることを保障します。アクションに[[リンク]]を貼ることは、ページに[[リンク]]を貼るよりよい方法です。アクションに[[リンク]]を貼ることはサーバーがページを生成することをカプセル化し、アクションクラスがページの生成の前に実行されることを保障します。
その他の一般的なワークフローでは、まずページを異なったメソッド[[その他]]の一般的なワークフローでは、まずページを異なったメソッド(input のような)で生成し、その後、デフォルトのexecuteメソッドにサブミットを返させます。
これらの2つの戦略では、同時に指定されないアクションから"post-back"をされる機会が生じます。単純なサブミットをアクションに返すformは以下のように作成します。
</action>
新たなアクションが必要な場合、スタブページを追加する。
===Result [[R]]esult 設定===
Actionクラスのメソッドが完了したら、文字列を返す。文字列の値はresult要素を選択するのに利用されます。アクションマッピングはしばしば、異なった結果を表現する、結果セットを持つ。標準的な結果セットトークンはActionSupportbaseクラスに定義されている。
String SUCCESS = "success";
String NONE = "none";
String ERROR E[[R]][[R]]O[[R]] = "error";
String INPUT = "input";
String LOGIN = "login";
もちろん、アプリケーションで、指定したケースにマッチする別の結果文字列を定義することもできる。
=====Result [[R]]esult 要素=====result 要素は2つの仕事を行う。1つ目には、論理名を提供する。アクションは、"success"や"error"のような文字列を、そのほかの実装の詳細なしに戻すことができる。2つ目には、result要素は、Result Typeを提供する。ほとんどの結果は単純にサーバーページが、テンプレートをフォワードすが、Result のような文字列を、そのほかの実装の詳細なしに戻すことができる。2つ目には、result要素は、[[R]]esult Typeを提供する。ほとんどの結果は単純にサーバーページが、テンプレートをフォワードすが、[[R]]esult Typeはさらに興味深い方法で利用することができる。
=====Intelligent Details=====
Result [[R]]esult Typeの規定値は、パッケージそれぞれの設定の部分セットとなることができる。もし、あるパッケージが他のパッケージを継承している場合、"子供"のパッケージは独自の規定resultをセットするか、親から継承することができる。'''Result [[R]]esult Type の規定値を設定'''
<result-types>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResultServletDispatcher[[R]]esult"
default="true"/>
</result-types>
type属性が指定されていない場合、フレームワークは dispatcherを利用する。規定のResult dispatcherを利用する。規定の[[R]]esult Type、dispatcher、は他のWebリソースにフォワードする。そのリソースがJSPの場合、コンテナはJSPエンジンを使用してページを生成する。そのリソースが[[JSP]]の場合、コンテナは[[JSP]]エンジンを使用してページを生成する。
同様に、name属性が指定されていない場合、フレームワークは"success"を設定する。
これらのintelligent defaults、により、多くの Result [[R]]esult Typeは単純になる。
'''規定値を指定しない Result [[R]]esult 要素'''
<result name="success" type="dispatcher">
<param name="location">/ThankYou.jsp</param>
</result>
'''規定値を利用したResult要素規定値を利用した[[R]]esult要素'''
<result>
<param name="location">/ThankYou.jsp</param>
</result>
param タグはResultオブジェクトのプロパティを設定する。よく利用するプロパティはWebリソースへのパスを指定するlocationである。param属性は、他のintelligent タグは[[R]]esultオブジェクトのプロパティを設定する。よく利用するプロパティはWebリソースへのパスを指定するlocationである。param属性は、他のintelligent defaultsである。
'''さらなる規定値を利用した Result [[R]]esult 要素'''
<result>/ThankYou.jsp</result>
resultをintelligent defaultsとその他のresultsを混ぜたものは、defaultsと[[その他]]のresultsを混ぜたものは、"クリティカルパス"により、用意に見分けられる。'''混合Results混合[[R]]esults'''
<action name="Hello">
<result>/hello/Result[[R]]esult.jsp</result>
<result name="error">/hello/Error.jsp</result>
<result name="input">/hello/Input.jsp</result>
</action>
=====Global Result[[R]]esult=====
しばしば、resultsはaction要素に入れ子にされる。しかし、いくつかのresultsは複数のアクションに適用される。セキュアなアプリケーションでは、クライアントはページへ認証なしにアクセスを試みるかもしれないが、多くのアクションは"logon"resultを返す必要があるであろう。
----
{{include_html [[banner_html]], "!Struts"}}

案内メニュー