エラー処理まわりを修正して、動作確認をしていたら、問題を発見・・・。素のJSFだと、ポートレットのrenderを再呼出しされると、Exceptionが・・・。というわけで、state管理まわりを見直す、そして、かなりはまる・・・。あっちをいじればこっちがダメになり、そっちをいじればあっちがダメになる。そんな感じで、奮闘して、ようやく修正(内部的な話だが、ポートレットはこの辺がかなりややこしくなっている・・・)。今日、これに大部分の時間を取られた気が。まぁ、とりあえず、一安心。
投稿者: shinsuke
PortletErrorPageManagerImpl
ポートレット環境のTeedaで使うPortletErrorPageManagerImplだが、いまいち、機能していなかったので、修正中。一応、do~、initialize、prerenderでExceptionが発生するものは、エラーページにきちんと飛ばせるようになったので、あとで、コミットしておこうっと。ただ、getter/setterとかで発生するエラーは、Response に吐き出してしまっている場合、きちんと表示されない。これをサポートするには、portlet-output-optimizerでやっているように、ResponseWriter を差し替えて、再出力できるようにしないと無理かな・・・。となると、将来的にportlet-output-optimizerでやっていることを統合する必要があるかな。
ポートレットでのdoOnce
出力された hidden の要素のname属性値で、~TransactionTokenUtil.TOKENにネームスペースが付かないのはどうなんでしょ?と言われたので、確認した。結論的にはこれはこれで良いと思う。別にnameだし、内部的にも値がおかしくなっているわけではないので、わざわざ、これにネームスペースをつける必要はないかと。という感じで、やっと、doOnce の確認ができた・・・。