doOnceとdoFinish
下記のTeeda のWikiページによると、
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をクリアする感じになっています。