有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

即使使用服务器设置,java MyFaces@ViewScoped也会引发NotSerializableException

因此,我希望使用ViewScoped,当我将状态保存方法设置为client时,页面将抛出NotSerializableException,页面将转发到错误页面。当我切换到服务器状态保存时,仍然会引发异常,但页面将被加载

我通读了许多问题和答案,并认为ViewScope/服务器状态保存的组合将消除将所有内容标记为可序列化的需要。有人看到这个问题吗

Richfaces 4.1/Myfaces 2.1.5


共 (2) 个答案

  1. # 1 楼答案

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

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

    这将防止MyFaces在将状态保存到会话中之前序列化状态。这样做是默认的原因。我想这是为了节省内存

  2. # 2 楼答案

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