JSF の@ViewScoped
and@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 を再評価させるにはどうすればよいでしょうか?
現在、デシリアライズ後にすべての管理プロパティを「手動で」再評価しています。それは機能しますが、明らかに正しくないようです。
ありがとうございました!