我正在从 jsf1.1 迁移到 jsf2.0。在测试我已转换的 jsf 页面之一时,它在其中一个类上遇到了 java.io.NotSerializableException。当它在 jsf1.1 下时,我没有收到此错误。为了解决这个问题,我在类中添加了 Serializable 接口。在我这样做之后,我在不同的课程上遇到了同样的错误。我知道我可以简单地将 Serializable 接口添加到这个类来解决这个问题。但是从 jsf1.1 迁移到 jsf 2.0 时这正常吗?
问问题
289 次
2 回答
1
您现在只会收到此错误,因为在 JSF 1.x 中,部分状态保存不是必需的。有关 JSF 状态保存的入门知识,请参阅此问题。
来自 JSF 2.x 规范:
对于 1.2 及以下版本的应用程序,运行时不得使用部分状态保存机制。对于 2.0 及以上版本的应用程序,运行时必须使用部分状态保存机制
这个规定是强制任何和所有视图组件可序列化的
于 2013-10-21T18:08:59.007 回答
0
从技术上讲,存储在会话中的任何内容都应该是可序列化的。在 JSF 中,视图和闪存范围存储在会话中。所以简而言之,任何不在请求范围内的东西都将在会话中结束。但是,在事情从会话中序列化出来之前,您不会看到错误。我不知道细节,但是 JSF 1.1 和 JSF 2.0 实现之间存在差异,因为 JSF 2.0 在序列化会话方面更具侵略性。
于 2013-10-21T16:39:57.593 回答