问题描述
|
当我在jsf页面上使用Openfaces组件并且每当我提交表单时,我在glassfish 3.0.1上使用jsf 2.0来构建我的搜索引擎的接口时,我会收到以下错误消息:
java.lang.classCastException:[Ljava.lang.Object;无法投射到
com.sun.faces.application.view.StateHolderSaver
我在网上找不到任何帮助,请问是什么问题?以及如何摆脱呢?
谢谢。
解决方法
这称为JSF问题1427。当在由JSF POST导航案例打开的页面上触发ajax请求时,部分状态保存可能会失败。按照建议的顺序提供了三种解决方案:
不要使用POST进行页面间导航。因此,将“ 0”替换为“ 1”或“ 2”。另见
h:outputLink
和h:commandLink
。
实现POST-Redirect-GET模式。因此,如果您仍在faces-config.xml
中使用老式的<navigation-case>
,则添加<redirect/>
条目。或者,如果您使用的是隐式导航结果,则在结果中添加“ 8”个查询字符串。
配置有问题的页面以利用完整状态保存。
<context-param>
<param-name>javax.faces.FULL_STATE_SAVING_VIEW_IDS</param-name>
<param-value>/pagename.xhtml</param-value>
</context-param>
(可以使用逗号作为分隔符来定义多个页面)
,下载新版本的JSF框架。
参见2.1.11版!
这是由内部jsf框架上的ajax状态请求中的错误引起的问题!
有关更多信息,请参见链接http://java.net/jira/browse/JAVASERVERFACES-1845;