-テンプレートのロジック

昨晩タイミング悪くみのがしてしまって遅れましたが、コメントにリプライです。ロジックはナナシナーではコンポーネントもページであっても、式言語の範囲でしか書けません。JSPでは、<%=***>でフルにJavaが書けますが、テンプレート中には基本的にバインディング情報を書くのみです。たとえば#{comp.prop1 + comp.rop2}のように四則演算もできますし、式言語がOGNLであれば#{comp.method1(123)}のようなメソッド呼び出しや#{new java.lang.Date()}のようなオブジェクト生成もできます。これはコンポーネント化した場合も、そうでない場合も同じです。JSPの<%=***>の仕組みはとても単純でプリプロセス時にスルーで書き出すのみのため、技術的には容易なのですが、デザインとロジックの分離の趣旨から抑止する形にしたいと思います。
テンプレート「コンポーネント」もテンプレート「ページ」と同じプリプロセス結果を利用します。そうでないと、テンプレートコンポーネントをページのように直接のURLで動作させるの動作視認テストの意味がなくなるためです。同じコードを通ってるから、代替の手段で簡便にテストができるのであり、まったくおなじテンプレートでもコンポーネントとページでプリプロセス結果が異なれば、テストの有意性がなくなってしまいます。
動作時には$contents$と$body$およびparameter指定やexpoert指定がコンポーネントにのみ有効で、ページではそれらの機能が動作しない違いになります。また、大前提の違いとして、コンポーネントではプリプロセス結果のサービスオブジェクトがJSPタグにホストされるところページではサービスオブジェクトがサーブレットにホストされるという、動作環境の違いはあります。