姬長信(Redy)

jsf-Mojarra中会话中的服务器状态序列化


通过阅读一本书中的摘要,我发现了这一点:

On the server side, the state can be stored as a shallow copy or as a
deep copy. In a shallow copy, the state is not serialized in the
session. By default, JSF Mojarra uses shallow copy.

我真的不明白.

由于在上述情况下,我们将拥有-

设置为服务器的javax.faces.STATE_SAVING_METHOD,

以及一个输入隐藏字段javax.faces.ViewState,其值类似于“ 2870966362946771868:-8449289062699033744”.

显然,服务器必须在内部维护与上述隐藏字段相对应的状态.

但是顺带一提,如果状态未在会话中序列化,那么它在哪里呢?

此外,我注意到一件事,如果我的托管bean(ViewScoped)没有实现将STATE_SAVING_METHOD设置为server的标记接口Serializable,则在Mojarra中不会发生NotSerializablEexception,而在MyFaces中会发生.