-id問題

移動で乗った井の頭線の電車の中に、コーディングの神様がいました。ちょうど明大前につく手前です。忘れないように手に持っていた文庫本(司馬遼太郎「義経」下巻)のカバーに書き留めました。テンプレートのid問題、アイディア的に解決しました。
テンプレートにidを指定して、.mayaファイルのノードと結びつけるのは失いたくない機能です。idがHTMLの全タグに必ずある属性であることと、共通属性の中で識別子として一番自然なものであるためです。しかし、ループの中で生成されるタグやDHTMLとの引っ掛けでどうしても動的にIDを生成したい場合もあるでしょう。その際、以下のように書きます。

<tr m:mayaid="trID" id="${var}">
テキストボディ
</tr> 
<c:out mayaid="trID" value="" replace="false"/>

テンプレート中の「m:mayaid」はidより優先されて識別子として動作します。しかし、m:mayaidが無いときには、idをいままで同様に用いることとします。テンプレートや設定XMLにm:idと書くとよさそうですが、これはNGです。テンプレートに書くときにはどういう意味になるかというと、インジェクションするテンプレートプロセッサへの属性設定とぶつかります。id属性をもつJSPカスタムタグ等もあるわけです。同じ値をせっていする場合は良いのですが、違う値を設定したくてもできません。同じ理由で設定XMLに書く場合は、強制でmayaidとします。設定XMLでは名前空間を省略するとhtttp://www.seasar.org/mayaとするためです。

-Craigさん

さて、生Craigですがつたない英語でお話しました。S2JSFの印象を聞いたら「ユニーク」と評されました。JCPでWEBテンプレートのスペックが企画されそうなことはあるのかと聞いたら「知らん」。TapestryJSFとがジョイントするうわさがあったが真相はと聞いたら「HLSがJSFを嫌いなんで無い」という。。。そんな理由があるのか?びっくり。デイタイムTapestryでSIやってるけどちょっと仕組みに難しいところがあるんだけど、と振ったら「Tapestryはデカイよね」。うん、デカイ。私もindivisualだけどJCPメンバーなんでTryするよと言ったら、ちょっと反応良かったです。JSR245の悪口は言わなかった(笑。
まあ、なんにせよ、Strutsの作者ですからね。日本のSIerはとても世話になってる人でしょう。ウチもStrutsでは結構案件やった(過去形)し。

-備忘録

  • QNameでもってるPrefixの情報をテンプレートプロセッサのほうに持っていく。QNameを定数キャッシュするため。TemplateProcessorHandlerでノード処理をするところでマッピング情報を作る細工。TemplateProcessor側にもプレフィックスマッピングを受ける細工。
  • PageContextの生成時のエンジンパラメータの渡りをチェック
  • OGNL式文字列中のエンティティ解決
  • デフォルトのtemplateSuffixの変更

-テンプレ接尾辞

テンプレートの切り替えに用いる「templateSuffix」ですが、アンダースコアだとページ名に普通につかってしまってハマるみたい。。。デフォルトを変えますか。候補はURLやファイルシステムの仕様の中で無理の無い記号。「%」や「+」はURLエンコードで出てくるからNG、「!」は目立たないので同様に「|」もダメ。「/」とか「\」は当然NG。「?」と「&」と「#」もURLの仕様からダメでしょうね。となると「$」かな?

-Eclipse Japan

http://www.nttcom.co.jp/news/pr05022801.html
とりあえず、問い合わせしました。どういうプログラムなのか、Seasarプロジェクトでも参加できるのか、参加の意味があるのか、をお伺いしたいと思ってます。

-改造後

改造完了。しかーし、まだ不具合あり。ソースコード管理上の問題から一度コミットします。完全動作しませんので注意です。落として楽しいのはマニアだけですから!簡単なサンプルは動きますが、文字化けするなどこれからの修正箇所がいくつかあります。
ということでこれから外出しますので。。。今晩帰宅後に対応します。