【问题标题】:Jsf Error : java.lang.ClassCastExceptionJsf 错误:java.lang.ClassCastException
【发布时间】:2011-04-17 15:22:35
【问题描述】:

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

java.lang.ClassCastException: [Ljava.lang.Object;不能转换为 com.sun.faces.application.view.StateHolderSaver

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

谢谢。

【问题讨论】:

    标签: java jsf openfaces


    【解决方案1】:

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

    1. 不要使用 POST 进行逐页导航。所以将<h:commandLink> 替换为<h:link><h:outputLink>。另见h:outputLink vs h:commandLink

    2. 实现 POST-Redirect-GET 模式。因此,如果您仍在 faces-config.xml 中使用老式的 <navigation-case>,则添加 <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>
      

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

    【讨论】:

    【解决方案2】:

    下载新版JSF框架。

    查看版本 2.1.11 !

    这是内部jsf框架上的ajax状态请求错误引起的问题

    更多信息请查看链接http://java.net/jira/browse/JAVASERVERFACES-1845

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多