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

これで複数シートのテンプレートそれぞれに専用のデータを埋め込む事が出来る。はずなんだけど・・・いや動く!確か実案件投下済み。

って事でよいのだと思うのですが、意図が違っていたら済みません・・・。