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

发布于 2024-12-27 07:19:03 字数 253 浏览 1 评论 0原文

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

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

Richfaces 4.1/Myfaces 2.1.5

So I wish to use ViewScoped and when I set the state saving method to client the page will throw a NotSerializableException and the page will forward to the error page. When I switch to server state saving, the exception is still thrown but the page will load.

I read through many questions and answers and was under the impression that the combination of ViewScoped/server state saving will eliminate the need to have everything marked as Serializable. Anyone see this issue?

Richfaces 4.1/Myfaces 2.1.5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

埋葬我深情 2025-01-03 07:19:03

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

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

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

I think setting this servlet context parameter will solve the issue:

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

This will prevent MyFaces from serializing the state before saving it in the session. Doing so is the default reason. I think it's for saving memory.

不必在意 2025-01-03 07:19:03

如果您使用 CDI,则可以使用 MyFaces CODI。它修复了这个问题,您可以使用 @ViewScoped beans 作为 CDI bean。

If you are using CDI, you can use MyFaces CODI. It fixes this issue and you can use @ViewScoped beans as CDI bean.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文