java - Jsf 错误 : java. lang.ClassCastException

标签 java jsf openfaces

我在 glassfish 3.0.1 上使用 jsf 2.0 来构建我的搜索引擎的界面,当我在我的 jsf 页面上使用 Openfaces 组件时,每当我提交表单时,我都会收到此错误消息:

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sun.faces.application.view.StateHolderSaver

我在网上没有找到任何帮助,请问是什么问题?以及如何摆脱它?

谢谢。

最佳答案

这被称为 JSF issue 1427 .当在由 JSF POST 导航案例打开的页面上触发 ajax 请求时,部分状态保存可能会失败。共有三种解决方案,按推荐顺序排列:

  1. 不要将 POST 用于页面到页面的导航。所以替换 <h:commandLink>通过 <h:link><h:outputLink> .另见 h:outputLink vs h:commandLink .

  2. 实现 POST-Redirect-GET 模式。因此,如果您仍在使用老式的 <navigation-case>faces-config.xml , 然后添加 <redirect/>入口。或者,如果您使用隐式导航结果,则添加 ?faces-redirect=true结果的查询字符串。

  3. 配置有问题的页面以利用完整的状态保存。

    <context-param>
        <param-name>javax.faces.FULL_STATE_SAVING_VIEW_IDS</param-name>
        <param-value>/pagename.xhtml</param-value>
    </context-param>
    

    (可以使用逗号作为分隔符来定义多个页面)

关于java - Jsf 错误 : java. lang.ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5694350/

相关文章:

java - 如何将主类的实例传递给多个监听器?

java - 我怎样才能通过他的variantKey找到一个ProductVariant?

java - 如何使用 Apache Camel 正确聚合文件内容?

jsf - 如何获取 p :datatable direclty on selecting the row? 的选定行

java - 已部署动态 Web 项目的 WebSphere ClassNotFoundException

javax.faces.view.facelets.TagAttributeException : Invalid path

java - 在 Java 中为什么要用 0 初始化一个 int 变量,而它在声明时仅默认分配 0?

java - Java框架选择问题

validation - JSF Primefaces 验证不起作用

java - openfaces 树表缺少 js