Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 ManagedProperty的序列化_Jsf 2_Deserialization_Managed Bean_View Scope - Fatal编程技术网

Jsf 2 ManagedProperty的序列化

Jsf 2 ManagedProperty的序列化,jsf-2,deserialization,managed-bean,view-scope,Jsf 2,Deserialization,Managed Bean,View Scope,JSF的@ViewScope和@ManagedProperty存在以下问题:我们的ManagedBeans基本上如下所示: @ManagedBean @SessionScope public class SessionConfig implements Serializable { // ... } 及 如预期的那样,在处理请求后,将序列化控制器。 我希望@ManagedProperty sessionConfig将在序列化中进行特殊处理,特别是在反序列化后重新链接。然而,事实证明,在

JSF的@ViewScope和@ManagedProperty存在以下问题:我们的ManagedBeans基本上如下所示:

@ManagedBean
@SessionScope
public class SessionConfig implements Serializable
{
    // ...
}

如预期的那样,在处理请求后,将序列化控制器。 我希望@ManagedProperty sessionConfig将在序列化中进行特殊处理,特别是在反序列化后重新链接。然而,事实证明,在反序列化之后,sessionConfig仅仅是实际sessionConfig Bean的过时克隆

问题: 这是预期的行为吗? 在反序列化之后,我们如何让JSF重新评估@ManagedProperty? 目前,我们在反序列化后手动重新评估所有托管属性。这是可行的,但显然似乎并不正确


谢谢大家!

解决方案是避免@ViewScope bean中的@ManagedProperty,并根据需要计算EL表达式@ViewScope bean将存储在会话中,并因此在每个请求结束时序列化

FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getApplication().evaluateExpressionGet(ctx, "#{sessionConfig}", SessionConfig.class)
请注意,如果必须频繁计算表达式,这可能会严重影响性能

更好的方法可能是提供如下所述的自定义序列化方法:
这样,每次反序列化bean时都可以自动解析表达式。

解决方案是避免@ViewScope bean中的@ManagedProperty,并根据需要计算EL表达式@ViewScope bean将存储在会话中,并因此在每个请求结束时序列化

FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getApplication().evaluateExpressionGet(ctx, "#{sessionConfig}", SessionConfig.class)
请注意,如果必须频繁计算表达式,这可能会严重影响性能

更好的方法可能是提供如下所述的自定义序列化方法:
这样,每次反序列化bean时,表达式都可以自动解析。

序列化使用什么?序列化使用什么?java.sun.com链接不再有效。你能提供正确的链接吗。谢谢。java.sun.com链接不再有效。你能提供正确的链接吗。谢谢