JSF の@ViewScopedand@ManagedPropertyには次の問題がありManagedBeanます。基本的に次のような があります。
@ManagedBean
@SessionScope
public class SessionConfig implements Serializable
{
// ...
}
と
@ManagedBean
@ViewScope
public class SomeController implements Serializable
{
@ManagedProperty( value="#{sessionConfig}" )
private SessionConfig sessionConfig;
// public getter and setter
// ...
}
予想どおり、要求が処理された後、コントローラーはシリアル化されます。@ManagedProperty sessionConfigはシリアライズで特別に処理されること、特にデシリアライズ後に「再リンク」されることを期待していました。ただし、デシリアライズ後sessionConfigは、実際の SessionConfig-Bean の古いクローンにすぎないことがわかります。
質問:
- これは予想される動作ですか?
@ManagedPropertyデシリアライゼーション後にJSF を再評価させるにはどうすればよいでしょうか?
現在、デシリアライズ後にすべての管理プロパティを「手動で」再評価しています。それは機能しますが、明らかに正しくないようです。
ありがとうございました!