Wicket Bits を試してみた

2008–09–07

ちょっと前にメーリングリストでアナウンスのあったWicket Bitsを試してみました。 正確にはWicket Bits内の Automagic を試したのですが、どういう物かというと Wicketでお馴染みの wicket:idをHTMLに記述すると、Javaは特にいじらなくても自動的にコンポーネントを生成してくれる仕組みです。

使い方は簡単。まずWebapplicationクラスに下記を追加します。

    public void init() {
        this.addComponentOnBeforeRenderListener(new AutoCreateRenderListener());
    }	  

HTMLがこんな感じのとき、

<body>
<div wicket:id="label">Hoge</div>
</body>	  

Javaはこんな感じでOK。Labelを生成してaddしなくてもOKなんです。

private String label = "Hello !";
public HomePage() {
    setModel(new CompoundPropertyModel(this));	  

これだけで"Hello !"が表示されちゃいます。 仕組み的にはコンポーネントをRenderする前にタグと属性の型により、生成するコンポーネントを制御しています。 Wicket勉強会で話題になったらしいComponent Resolverを使っているわけではないようです。 タグとコンポーネントが結びついちゃってるってのは、ちょっと融通が聞きにくい部分なんですが、(例えばtableではなく、ulとかでListViewを使いたいとき)なかなか面白い試みですね。

まだまだできる事とできない事を調べ切れていないですが、ある意味割り切った形というのもアリですね。