tapestry-s2は、Tapestry 5からS2Container上のコンポーネントを使うためのライブラリです。フィールドに@S2Componentと書くだけで簡単にS2Container上のコンポーネントを取得することができます。
tapestry-s2を動作させるためには次のJARが必要です(maven2のpom.xmlを提供しています)。
tapestry-s2を使用するためには、アプリケーションのModule BuilderクラスのSub ModuleとしてS2Moduleクラスを指定します。Module Builderクラスは通常、AppModule?という名前のクラスです。
@SubModule(S2Module.class) public class AppModule { :
それからweb.xmlの設定が必要です(詳しくはサンプルを参照してください)。これでtapestry-s2の機能が使えるようになります。
@S2Componentは、@Injectと組み合わせて使用します。具体的には次のようにします。
@Inject @S2Component private Greeting greeting;
この例は、「S2ContainerからGreetingインタフェースを実装したコンポーネントを取得する」という意味です。つまり次のようにS2Containerから取得した場合と同じ動作になります。
Greeting greeting = SingletonS2Container.getComponent(Greeting.class);
また、型ではなくコンポーネント名を指定して取得したい場合は、
@Inject @S2Component("greeting") private Greeting greeting;
のように、@S2Componentにコンポーネント名を指定します。
ASL2.0
S2JSFのサンプルにある従業員管理アプリをtapestry-s2を使って作成しました。
<html> <head><link href="/tapestry-s2-employee/assets/tapestry/default.css" rel="stylesheet" type="text/css"> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <title>Employee Management</title> <link href="../css/global.css" rel="stylesheet" type="text/css"> </head> <body> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <title>Employee Management</title> <link href="/tapestry-s2-employee/css/global.css" rel="stylesheet" type="text/css"> </head> <body> : :
TODO 動かし方の手順
0.0.3 [2007/08/04]
0.0.2 [2007/04/09]
0.0.1 [2007/03/04]