我正在从jsf1.1迁移到jsf2.0。在测试我转换的一个jsf页面时,它遇到了其中一个类的java.io.NotSerializableException。当它在jsf1.1下时,我没有收到此错误。为了解决这个问题,我在类中添加了Serializable接口。在我这样做后,我在另一个班级得到了同样的错误。我知道我可以简单地在此类中添加Serializable接口来解决问题。但是从jsf1.1迁移到jsf 2.0时这是正常的吗?
答案 0 :(得分:1)
您现在只收到此错误,因为在JSF 1.x中,不需要部分状态保存。有关JSF状态保存的入门知识See this question。
来自JSF 2.x规范:
对于1.2及以下版本的应用程序,运行时不得使用部分状态保存机制。对于2.0及更高版本的应用程序,运行时必须使用部分状态保存机制
此规定强制任何和所有视图组件可序列化
答案 1 :(得分:0)
Technically,会话中存储的任何内容都应该是可序列化的。在JSF中,视图和闪存范围存储在会话中。因此,简而言之,不在请求范围内的任何内容都将在会话中结束。但是,在事件序列化为会话之前,您不会看到错误。我不知道细节,但是在JSF 1.1和JSF 2.0实现方面存在差异,JSF 2.0在序列化会话时更具攻击性。