2011-08-08 3 views
2

Richfaces 3、Facelets(JSF 2以前のバージョン)、Tomcatを使用しています。私は私のページにRichFacesのツリーを追加することに取り組んでいますが、このエラーを取得しています:Richfacesツリーの問題 - 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); 

そして:ここ

org.richfaces.model.TreeNodeImpl cannot be cast to javax.swing.tree.TreeNode

を、私はノードのリストを構築するために使用しているコードがある

@NotNull 
    public List<TreeNodeImpl<String>> getTreeNodes() 
    { 
     return m_treeNodes; 
    } 

そして、私のページはこれを持っている:

<rich:tree value="#{DmsRecommendationsPage.treeNodes}" var="recommendation"> 
    <rich:treeNode> 
     #{recommendation} 
    </rich:treeNode> 
</rich:tree> 

アイデア?ありがとう!

答えて

3

インポートを確認します。 RichFacesの独自のorg.richfaces.model.TreeNodeインターフェイスをプロパティ宣言で使用する必要があります。 TreeNodeを宣言している間にRichFacesのものではなくSwingのものをインポートするために、IDE自動了解の最初のオプションを選択した可能性があります。

他の読者のため

import javax.swing.tree.TreeNode; 

によって

import org.richfaces.model.TreeNode; 
3

置換:

javax.swing.tree.TreeNodeはRichFacesのに使用されるが、ここで紹介: http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=tree&skin=blueSky

どちらも可能です。 documentation状態:

The data model must be either an org.richfaces.model.TreeNode interface, an org.richfaces.model.TreeDataModel interface, or a javax.swing.tree.TreeNode interface.

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 { 
関連する問題