即使使用服务器设置,MyFaces @ViewScoped也会抛出NotSerializableException

时间:2012-01-13 20:58:16

标签: java jsf-2 richfaces myfaces

所以我希望使用ViewScoped,当我将状态保存方法设置为客户端时,页面将抛出NotSerializableException,页面将转发到错误页面。当我切换到服务器状态保存时,仍会抛出异常,但页面将加载。

我阅读了许多问题和答案,并且认为ViewScoped /服务器状态保存的组合将消除将所有标记为Serializable的需要。有人看到这个问题吗?

Richfaces 4.1 / Myfaces 2.1.5

2 个答案:

答案 0 :(得分:0)

我认为设置这个servlet上下文参数将解决问题:

<context-param>
  <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
  <param-value>false</param-value>
</context-param>

这将阻止MyFaces在将其保存在会话中之前序列化状态。这样做是默认原因。我认为这是为了节省记忆。

答案 1 :(得分:0)

如果您使用的是CDI,则可以使用MyFaces CODI。它解决了这个问题,你可以使用@ViewScoped bean作为CDI bean。