-私的イメージ(10)-テンプレートの切り替え

これは結構大事な機能だと思います。すくなくともロケールの切り替えは必須。I18Nコンポーネントレベルでやるとき、あまり動的でなく、多分にデザイン的な要素についても少なからずロジックが入ってしまいます。もちろんすでにJSTLタグやStrutsタグなど普通にI18N化されてますので、国際化アプリケーションはナナシナーが考えなくても作れるでしょうが、I18Nコンポーネント地獄にはまるのはつらい。そのときはいささか乱暴にも聞こえますが、HTMLテンプレートをコピーして、該当箇所を直に翻訳してしまえばいいんじゃないかなと思います。もちろん、これは敬愛するTapestryの機能のパクリです。しかーしTapestryロケールで切り替えるだけ。そこをナナシナーはロジックで切り替えましょう。以下のイメージ。

<template expression="finder.template"/>

これを設定XMLに書きます。どうしてもこれはHTMLテンプレートには書けないと思います。なぜなら自分を探すルールを自分には書けないんじゃないかなと。で、EL式で評価される、finderオブジェクトのgetTemplate()メソッドは、引数に何か情報ファサードオブジェクト(NanashinaContextみたいな)が渡されるのをきめ打つな感じかなと。JSFのcommandButtonタグにおける、actionにセットしたメソッドのように、です。