fusatsukatsujinのブログスマートフォン用の表示で見るfusatsukatsujinのブログこの広告は、90日以上更新していないブログに表示しています。2016-06-04JSFの落とし穴とあるプロジェクトで、JSF2.2(Myfaces)の技術検証を行っているのですが、ステートフルであるが故の落とし穴がありということに気づきました。いうところがあります。ViewScoped(javax.faces.view.ViewScoped)なバッキングビーンは、別Viewへ遷移時にインスタンスが即破棄されていると思いがちであるが、実はそうではないらしいです。myfaces+weldで試したところ、即時削除はされなかったです。インスタンスの最大数が決められており、それを超えた場合にLRUで削除される実装になっていました。複数タブを開いて、何回か画面遷移をしてしまうと、古い片方のタブのViewScopedなビーンが削除されてしまいます。この動きはviewstateも同じで、古いものから削除されるので、複数タブで画面遷移を行っていると、片方のタブのviewstateが削除されてしまい、ViewExpiredExceptionになってしまいます。あ、これは、SAVING_STATE_METHODがserverの場合ですね。clientであれば、viewstateはclientに保存されるので、知らぬ間に削除されてしまうなんてことは起きません。JSFの肝である、ステートレスなHTTPを無理やりステートフルに見せかけるという手法はやはり限界があるのかもしれません。うんたらかんたら月別アーカイブはてなブログをはじめよう!fusatsukatsujinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。