Saturday, April 23, 2011

Tableタグを作るBuilderクラスをつくってます

mixer2で、table,tr,tdタグを組もうとすると、こうなります。

import static org.mixer2.xhtml.TagCreator.*;
...
Table table = new Table();
// 一個目のtd
Td td1 = td(); // td = new Td(); と同じ意味になります。
Tr tr = tr();
td1.getContent.add("a");
tr.getThOrTd().add(td1);
// 2個目のtd
td2 = td();
td2.getContent.add("b");
tr.getThOrTd().add(td2);
// tableに収める
table.getTr().add(tr);
...

面倒ですよね(笑)。他のタグならともかく、tableタグはデータ表示などの目的での利用頻度がものすごく高いタグですので、これじゃあちょっと、あんまりです。

そこで、こんな風に、わかりやすくtableを組めるTableBuilderクラスをつくっているところです。

...
TableBuilder tb = new TableBuilder();
tb.tr(0).td(0).add("a"); // 1行目、1列目のtdにaがはいる
tb.tr(0).td(1).add("b"); // 1行目、2列目のtdにbがはいる
Table table = tb.build(); // これでtableタグ全体ができる
...

もちろんこれだけでなく、行、列のindexを指定しなくてもadd("a")とかするだけで最後尾に自動的にtrやtdを作るようなメソッドもつくろうかなとも思っています。いろいろと試しているところです。

mixer2の次期リリースに搭載できると思います。乞うご期待。

Wednesday, April 20, 2011

mixer2 version1.0.6リリース。FormUtilクラスを追加しました。

formタグ内部のinputやselect等に、JavaBeanクラスの内容を自動的に挿入するユーティリティが追加されました。詳しくは mixer2 - Form and JavaBean をご覧ください。

Strutsのアクションフォームクラスや、Spring MVCのcommandクラスでも使われている、一般的なJavaBeanをそのまま使うことができます。Webアプリにおいて、formタグを使ったCRUD的な画面を生成する際に、結構便利に使えると思われます。