我使用的是Richfaces 3、Facelets (jsf 2之前的版本)和Tomcat。我正在添加一个Richfaces树到我的页面,但得到这个错误:
下面是我用来构建节点列表的代码:org.richfaces.model。treendeimpl不能强制转换为javax.swing.tree.TreeNode
int i = 0;
TreeNodeImpl<String> rootNode = new TreeNodeImpl<String>();
for( Recommendation recommendation : m_recommendationsBean.getRecommendations() )
{
final TreeNodeImpl<String> childNode = new TreeNodeImpl<String>();
childNode.setData( recommendation.getEventDescription() );
rootNode.addChild( i, childNode );
i++;
}
m_treeNodes.add( rootNode );
然后:
@NotNull
public List<TreeNodeImpl<String>> getTreeNodes ()
{
return m_treeNodes;
}
我的页面只有这个:
<rich:tree value="#{DmsRecommendationsPage.treeNodes}" var="recommendation">
<rich:treeNode>
#{recommendation}
</rich:treeNode>
</rich:tree>
任何想法?谢谢!
检查您的导入。RichFaces自己的org.richfaces.model.TreeNode
接口应该在属性声明中使用。您可能已经选择了IDE自动建议的第一个选项,在声明TreeNode
时导入Swing而不是RichFaces。
import javax.swing.tree.TreeNode;
import org.richfaces.model.TreeNode;
其他读者:
javax.swing.tree.TreeNode在Richfaces展示中使用:http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=tree&皮肤=蓝天
似乎两者都有可能。文档说明:
数据模型必须是org.richfaces.model.TreeNode接口、org.richfaces.model. treedatmodel接口或javax.swing.tree.TreeNode接口。
package org.richfaces.demo.tree.model;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import javax.swing.tree.TreeNode;
import com.google.common.collect.Iterators;
public class Country extends NamedNode implements TreeNode {