ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Tapestry

J2EEの最終進化形態

TapestryっぽいJSF http://www.onjava.com/pub/a/onjava/2004/06/09/jsf.html JSFのページテンプレートをHTMLにしてTapestryのように 開発するってのをいずれやろうと思ってたけど、 既にやってる人がいました。 なんかソースがまだ見つかってませんが、 で…

S2.0.8 S2Tapestry 5/15(明日)リリース予定

S2.0.8でExcelを使ったS2Unitのテスト機能がほぼ完成し、 オラクル、HSQLDB以外でも稼動するようになる予定です。

Spindleの設定

前のようにとってつけたようなやり方ではなく、 やっと設定方法をつかみました。 最初にSpindleでTapestryプロジェクトを作成します。 次にプロジェクトを右クリックして、プロパティ->Tomcatで Tomcatプロジェクトであるをチェック、 アプリケーションURIに…

Tapestry入門記(11) Submit2

複数のSubmitコンポーネントがある場合に昨日やったように tagパラメータを使う方法以外に、リスナーメソッドを直接起動 する方法もあります。 <form jwcid="@Form"> <input type="submit" jwcid="@Submit" listener="ognl:listeners.submit" label="submit"/> <input type="text" jwcid="@TextField" value="ognl:text"/> </form>この方法の注意点は、リスナーメソッドが呼び出されるタイミングは、 rewindと同じだということです。たぶん…

Tapestry入門記(10) ページの初期化

昨日、複数のリクエスト間で、ページの状態が維持されているみたい と書いたのですが、プーリングされているページが再利用されている のでそう見えたみたいです。 まさたかさんに教えていただきました。 試しに、ページに値をセットしてブラウザを落とし、 …

Tapestry入門記(9) Submit

サブミットされたときの処理は、フォームに Submitコンポーネントが1つしかない場合には、 これまでやってきたようにFormコンポーネントの listenerパラメータを使います。 <form jwcid="@Form" listener="ognl:listeners.submit">それでは複数のSubmitコンポーネントがある場合はどうするのでしょうか。 1つはSubm</form>…

Tapestry入門記(8) PageRenderListener

今日から出社。なんと朝プロです。 職場が品川に移ったので家(田町:芝浦)からグーンと近くなって 余裕があるのです。 ページを表示・更新する最初のイベントを捕まえたい ときに使うのが、PageRenderListenerです。 こいつをimplementsして、pageBeginRender…

Tapestry入門記(7) Select, Option, Foreach

今回は、前回やったRadioSeasarのドロップダウンバージョンを作ってみます。 最初はSelectSeasar.html <form jwcid="@Form" listener="ognl:listeners.refresh"> <select jwcid="@Select"> <span jwcid="@Foreach" source="ognl:@hello.SelectSeasar@SEASARS" value="ognl:seasar"> </span></select></form>

Tapestry入門記(6) Radio, Asset

Tapestry in ActionのHangmanってどうしてあんなに難しいんでしょうね。 最初の例なのに。 今回は、Seasarのバナーも出たことなので、Radioの選択に あわせて、イメージを青シーサー、赤シーサーに 切り替えられるようにします。 最初は、RadioSeasar.htmlで…

Tapestry入門記(5) Visit

前回Visitオブジェクトに軽く触れたので今回のテーマは、 Visitについてです。 Visitはセッション単位に作成されるユーザ定義のオブジェクトです。 Servlet APIに依存せずにテストもしやすくするという Tapestryの配慮なのでしょう。 今回は、定番であるカウ…

Tapestry入門記(4) ApplicationServlet

Tapestryアプリケーションは、web.xmlにApplicationServletを 指定します。 <servlet> <servlet-name>hello</servlet-name> <servlet-class> org.apache.tapestry.ApplicationServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/app</url-pattern></servlet-mapping>

Tapestry入門記(3) TextField, Insert

さて今度は、お約束の足し算機能です。 AddInputページで受け取った内容をもとに計算して、 AddResultページに表示します。 入出力のプロパティやイベント処理は、Tapestryではページクラスが 担当します。StrutsのActionFormとActionが合体したようなクラス…

Tapestry入門記(2) PageLink

まずは、Webの基本、リンクをクリックして他のページに飛ぶ方法です。 新規->その他->Tapestry->Tapestry Pageを選びます。 Page NameにAddInputを指定、create new classをチェックして パッケージにhelloを指定します。クラス名は、デフォルトだと ページ…

Tapestry入門記(1) - Spindleを使う

GW中はTapestryを触ります。S2の開発はとりあえずなし。 まずはSpindleを使えるようにします。 Tomcat5.0.19, Tomcat Plugin2.2.1をインストールします。 Spindleは3.0.43をインストール。 Tapestryプロジェクトを作ってみます。 ファイル->新規->プロジェク…

Tapestry 3.0 FINAL

http://howardlewisship.com/blog/2004_04_01_archive.html#108231397416129408 結局、まさたかさんの提案は受け入れてもらえなかったよう。 private -> protectedくらいやれよごるぁ。 気を取り直して、S2Tapestryきちんとだすですよ。 Tapestry in Action…

S2とTapestryとの連携

Springのドキュメントを見ていたら、Tapestryと連携する 方法が出てました。 http://www.springframework.org/docs/reference/view.html#view-tapestry S2も同じように(たぶん)いけますね。 Globalにcontainerという名前で、S2Containerをセットしておき、 p…

S2とTapestryとの連携

http://d.hatena.ne.jp/masataka_k/20040322#p6より //とりあえずPageSource#getPage(IRequestCycle,String,IMonitor)が候補 public IPage getPage(IRequestCycle cycle, String pageName, IMonitor monitor) { IPage page = super.getPage(cycle, pageName,…

連携

Injection(=注射)、Dependency(=依存)ということで、インスタンスを登録して、後に取得するときにプロパティ設定をやるメソッドを用意する感じでしょうか。S2Containerをオブジェクトプールとして使うように理解しました。 // 仮にinjectDependency()を持…

プレゼンテーションフレームワークとの連携

IoCコンテナとプレゼンテーションフレームワークとの連携が 難しくなる最大の原因は、IoCコンテナは、コンポーネントの作成を コンテナがおこなうが、プレゼンテーションフレームワークも 自分が必要なクラスは自分たちで作成するので、 その部分がかみ合わ…

S2 with Tapestry

ここでは、Tapestryの後ろに、Seasar2のS2Containerを使う方法を説明したいと思います。単に持ってくるだけでなく、細工を施してより楽に開発作業が進められるようにしてみました。 S2のデフォルトフロントエンドは、やっぱりTapestryかも。 Flashももちろん…