doOnceとdoFinish

下記のTeedaWikiページによると、
http://www.seasar.org/wiki/index.php?Teeda%2FgettingStarted#p1b893e1

doFinish の使い方は、以前まで、次のように記載されていました。

doFinish
doFinishでもTransactionTokenが発行され、DoubleSubmit防止のJavaScriptがrenderされる。

それに加え、doFinishでは、サーバ側でviewIdごとに一定数管理している Pageの状態をすべて破棄する。


しかし、どうやら、上記の説明は間違っていました。今は、次のようになっています。(というか、私の方でshotさんに確認して、書き換えさせて頂きました。)

doFinish
doFinishでは、サブアプリケーションスコープ内で管理しているプロパティを全てクリアします。

内部的には、Session に "javax.faces.internal.scope.SubApplicationScope" というキーに関連付けられたMapがあって、このMapにサブアプリケーションスコープとして管理してある全てのプロパティが詰め込まれおります。そして、doFinishメソッドが呼ばれた後に、このMapをクリアする感じになっています。