JSF Spec 3.1.1 と 6.1.2

ExternalContext の encodeNamespace について、調べていて気づいたのだが、サーブレットでは何もしないので関係ないが、ポートレットではRenderResponse#getNamespace()を使って変換する。でも、この変換が曖昧・・・。3.1.1は、id は文字か_出始めろと書いているけど、6.1.2 ではprefixされると言っている。javadocでもprefixed by と言っているので、RenderResponse#getNamespace()を前に置くというようにととれる。でも、そうすると、3.1.1を壊す場合もあり得る。ということで、MyFacesでは、後ろに置くようにしている(元々前だったと思うが変更している)。Teeda もそれに従って、後ろに置いている。だが、Sunの実装は、前だ(っていうか、Sunの実装は1年前のだしな・・・古い)。3.1.1と6.1.2のどちらを優先すべきかは難しいけど、個人的意見としては、3.1.1を優先した方がいいかと思うので、Teedaではそのままにしておこう(MyFacesがこれでTCK通っているので、たぶん、そのままでも影響はないと思うし、Stan は JSF のスペックの話に加わっていると思うからそれでも大丈夫だろう・・・と思う)。

http://marc2.theaimsgroup.com/?l=myfaces-dev&m=114123084404303&w=2

コメントを残す

メールアドレスが公開されることはありません。