Fisshplateで複数シートのテンプレート、シートごとに使うデータを分ける
こちらのエントリー、気がつくの遅くて済みません。
http://d.hatena.ne.jp/happy_ryo/20090525#1243235662
0.1.4-SNAPSHOTから複数シートにテンプレートを書けるようになってます。気をつけなきゃいけないのは、#var で宣言した変数のスコープは複数シートにまたがるので、シート間で変数名が重複するとその旨のエラーになります。
で、そのシートごとにつかう、MapなりDtoなりのデータを分ける方法ですが、こういう方法で出来るはずです。
例えばシート1にはDto1、シート2にDto2につめたデータを埋め込みたい場合。まず、Java側でMapにそれぞれのインスタンスをつめます。
map.put("dto1",dto1); map.put("dto2",dto2);
キーは勿論任意のものでも構いません。また、Mapでなくて、Dto1とDto2をプロパティとして持つ専用のDtoを作ってもいいです。たぶん。
で、テンプレート側でそのMapを「data」として参照する場合、1シート目の最初にこう書きます。
#var dto1 = data.dto1
あとはdto1を使って普通にテンプレートを書きます。
2シート目の最初にはこうです。
#var dto2 = data.dto2
これで複数シートのテンプレートそれぞれに専用のデータを埋め込む事が出来る。はずなんだけど・・・いや動く!確か実案件投下済み。
って事でよいのだと思うのですが、意図が違っていたら済みません・・・。