-今日の究極の結論

もっというと、HTMLの美しいテンプレート(もしあればプラス外部設定XML)を食って、JSPファイルに直すプリプロセッサを作ればいいんじゃないかな?Jasperに食わせばJavaソースコードになったうえ、普通のサーブレットにコンパイルするわけですよ!Tapestryですらキャッシュはするけどコンパイルはしてないぞ!!いや、興奮してしまいました。。。。。で、さらにがんばれるなら、直接ソースコードを生成してコンパイルするSeasarプロジェクト版Jasperをつくればいいんだよね。
で、やっぱり式言語はOGNL。あとはTapestryのPageスペックXMLのcomponentタグとbindingタグみたいなものとTLD引っ張るためのtaglibタグを定義すればいいかな。bindingはexpression属性ではなく、タグボディでOGNLを書けば、文字リテラルは"string"だし。

<page>
  <template>templateFinder.getTemplate(context.locale)</template>
  <taglib prefix="f" url="http://java.sun.com/jsf/core"/>
  <taglib prefix="h" url="http://java.sun.com/jsf/html"/>
  <component name="form1" type="f:form"/>
  <component name="text1" type="h:inputText">
    <binding name="value">comp.prop</binding>
  </component>
  <component name="button1" type="h:commandButton">
    <binding name="value">"OK"</binding>
    <binding name="action">comp.submit</binding>
  </component>
</page>

ジャストアイディアですが。。。XMLはつかわずにHTMLにインプリシットするなら、

<html>
  <head>
    <meta name="taglib" content="f;http://java.sun.com/jsf/core"/>
    <meta name="taglib" content="h;http://java.sun.com/jsf/html"/>
  </head>
  <form swcid="f:form">
      <input type="text" swcid="h:inputText" value="comp.prop">
      <input type="submit" swcid="h:commandButton" action="comp.submit">
  </form>
</html>

細かな問題はまだ考えてません。