Teedaを使う。

ついこないだからTeedaというかSuperAgile一式?を使い始めた。
Javaは久々なので、変数の頭に$をつけてみたり、Stringかくの忘れたりで
脳みその移行が大変。


それは置いておいて、
TeedaはCoreじゃなくてExtesionの方を使ってやってる(意味あってるかな?)
htmlベースのviewね。


一般的な事をやる分にはめちゃめちゃ楽なんだけど、
ちょっと小難しい事をしようとするとドキュメントがあるようで無いので、
いかんともんしがたい。


で、やりたかったことは、
縦横可変テーブル。


縦の可変テーブルは
Pageクラスに〜〜Itemsってフィールド(配列)作って、
viewで<tbody id="〜〜Items"></tbody>
でかこってやればできると書いてあったんだけど、
これができない。
いや、できてるんだけど、tbodyで囲んだ中のspanタグにデータが出ない。
試行錯誤の結果、ようやっと理由が分かった。
ItemsにDTOの配列を使ってる場合のみかもしれないけども
PageクラスにDTO内で定義されていて、画面に出したいフィールドは
Pageクラス内でも定義されていないといけない仕様らしい。

つまり、
DTO
public Integer out;
と定義されてて、
viewに
<span id="out"/>
となっているだけではDTOのoutは画面に出力されず、
Pageクラスに
public Integer out;
を追加しないといけない。

んー微妙な仕様(?)


とりあえず、これが分かれば簡単。
テーブルの縦横変動は

DTOを2つ用意(RowDto, CellDto)して、
RowDtoにCellDtoの配列をフィールド(cellItems) として持たせる。
この時、〜Itemsという名前にしておく。

Pageクラスに
RowDtoの配列をフィールド(rowItems)として持たせ、
2つのDTOの出力したいフィールドをPageクラスに定義する。

そんで、
<tbody id="rowItems">
 〜〜〜
 <tbody id="cellItems">
  〜〜〜
</tbody>
 〜〜〜
</tbody>
と〜〜〜の部分にspanタグなりをガシガシ書いておけば
縦横可変のテーブルの出来上がり。


もうちょっと分かるようになってくると、かなり便利だねTeeda


あと、SuperAgileは基本的にpublicフィールド=setter,getter定義済みprivateフィールドとなっていて、
setter,getterばっかりになるのを防いでいる。
publicフィールドは良くないと言うけども、
SuperAgileくらいDIとviewからの情報セットを自動でやってくれると、そんなのはどうでも良くなってくる。
フィールドに値をガシガシとセットすることがまずないので、
基本的にフィールドはpublicだろうがprivateだろうがいじることはほとんどない。
いじるにしても、Pageクラスは画面に出る項目=フィールドなので、すぐ分かるしね。
Daoとかは、Implementsをする必要が無いので、代入しようにもできない。
よく考えてるなー。

2008/01/13修正。<を変換するの忘れてた。