次期S2Wicketではこうなります Part2
前のエントリで,S2Wicketの今後の方向性として,以下のコードを示した。
前回までの構想では,LinkコンポーネントのイベントハンドラとなるonClickLink()メソッドを実装する必要があった。上記の場合,イベントハンドラ内では,helloServiceオブジェクトのsay()メソッドを呼び出し,その結果をhelloModelオブジェクトのhelloプロパティにセットする,というだけの処理を行っている。何かを行う,という点ではメソッドを作成することは自然と言えば自然だが,イベント処理すらも宣言的に記述したくならないだろうか?
S2Wicketでは,Wicketコンポーネントのイベント発生時に行いたい処理を,さらに簡潔に記述できるようにする。
見ての通り,フィールド定義のみになる。その分,使用するアノテーションが派手になっている。
@WicketComponentアノテーションの中に,@WicketActionアノテーションを記述できるようにした。@WicketActionアノテーションは,method属性にイベントハンドラのメソッド名を,exp属性に実行したい処理をOGNL式で記述する。@WicketActionアノテーションを使用すれば,実行時にmethod属性で指定したメソッドが呼び出されたとき,S2Wicketはexp属性に書かれたOGNL式を評価する。
多くの場合,プレゼンテーション層で行う処理といえば,ビジネスロジック層の呼び出しとその結果の表示用モデルへのマッピングだろう。S2Wicketは,そのような単純なことを,単純な記述で可能にする。
さらに「Javaらしさが失われた」S2Wicket,あなたはどう感じるだろうか? (^^;


