|
GettingStarted_T2AMF
ja , en T2とFlexでRIA開発を始めるための具体的なセットアップや動かし方を学びます. はじめにこの章ではT2とFlexを使う場合の具体的なセットアップややり方を学びます. 必要なもの実行環境を用意するT2とFlexの開発には、以下のものが必要です.
てっとり早く環境を準備するのであれば、T2+Flexブランクプロジェクトをダウンロードしてください. このチュートリアルでは、ブランクプロジェクトを使って解説します. 環境の確認フォルダ構成の確認まずは環境の確認です.ダウンロードしたt2amf-blankはEclipseプロジェクト形式になっているので、そのままFlexBuilderでインポートしてください. フォルダ構成は下記のようになっています.
jarの確認jarファイルも確認しておきます.t2amf-blankは最小限のjarしか同梱していません. 必須jarは以下のとおりです. オプションのライブラリは下記のとおりです.
設定の確認T2の設定を確認しましょう.T2自体はweb.xmlにフィルタを設定するだけです.t2amf-blankではあらかじめ初期設定は終わっています. 確認すべき重要な点は、Filterのinit-param項目で、以下の2点です.
設定ファイル全文は以下のようになっています.<?xml version="1.0"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>t2.encoding</param-name> <param-value>UTF-8</param-value> </context-param> <filter> <filter-name>t2</filter-name> <filter-class>org.t2framework.t2.filter.T2Filter</filter-class> <init-param> <param-name>t2.rootpackage</param-name> <param-value>org.t2framework.examples.page</param-value> </init-param> <init-param> <param-name>t2.container.adapter</param-name> <param-value> org.t2framework.t2.adapter.SimpleContainerAdapter </param-value> </init-param> <init-param> <param-name>t2.exclude-resources</param-name> <param-value>css, js</param-value> </init-param> </filter> <filter-mapping> <filter-name>t2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>main.html</welcome-file> </welcome-file-list> </web-app> 実装して動かしてみようまずは実装すべきものを確認しましょう.今回のサンプルでは、実用的かつ最も簡単な例にしました. その中ではFlexとT2で通信させるには、以下のクラスを書きます. サーバサイド側サーバサイド側では、まずPageクラスを作成します.PageクラスはFlex側からの通信を受け取る役割です. 最小限のPageクラスは以下のようになります.
@Page("hello")
public class HelloPage {
@Amf
public Navigation execute(RequestDto requestDto) {
ResponseDto responseDto = new ResponseDto();
responseDto.setMessage("Hello T2AMF from server-side!");
return AmfResponse.to(responseDto);
}
}このサンプルではFlexから、hello.execute(requestDto)という形で呼び出されます.今はわからなくても大丈夫です.まずは一個一個みていきましょう. @PageとPageクラス@PageはT2がクラスをPageクラスと認識するためのアノテーション*です.Flexと通信させるためには、@Pageをつけておく必要があります. また、1つある引数は、Flexと通信する場合の目的地(destination)です. Flex(ActionScript)側から、この値と同じ値を設定しておくことで通信できます.このサンプルの場合はhello*がdestinationになります. @Amfと呼び出せるメソッド@AmfはFlexからの通信可能なメソッドにつけておくアノテーションです.戻り値は必ずNavigationにする必要があります. 通常@Amfとつけておくと、そのメソッド名が呼び出し元のFlexからコールされます.上記のサンプルではexecuteというメソッド名です. T2で呼び出されるメソッドはアクションメソッドと呼んでいます. 引数について引数は原則どのような型でも受け取る事が出来ます.勿論自分でクラス(JavaBeans)を定義したものを使う事も出来ますし、IntegerやStringのようなJDKの型も受け取ることが出来ます. ただし自分で作ったクラスを使う場合、ActionScriptにも同様のクラスが必要になります.詳細はクライアントサイド側で解説します.
この例では、RequestDtoという自分で作ったクラスでデータをFlex側から受け取っています. 実プロジェクトにおいては、自分で作ったクラスでデータをやり取りすることが一般的なので、このサンプルもそれにあわせています. 戻り値について戻り値はFlexと通信させる場合は常にAmfResponseになります. AmfResponseは引数を1つとるtoメソッドがあり、この引数に返したいオブジェクトを指定します.上記の例であれば、ResponseDtoを返しています. 返すオブジェクトも原則何も制限は無いですが、引数のときと同様自分で作ったクラスを使う場合、ActionScriptにも同様のクラスが必要になります. 以上でサーバサイドは終了です. クライアントサイド側mxmlActionScriptDto動作確認以上で設定・実装は終了です. この先に進むならば、開発者ガイドを見てみてください. | |