我一直在使用Apache myfaces tomahawk tree2组件在我的jsf1.1网页中渲染目录结构。在支持bean中,我编写了一个递归函数调用来初始化文件夹名称和文档名称,以便在tree2组件中显示。
实例变量是:
private TreeNode treeData;
TreeNodeBase personNode=new TreeNodeBase();
TreeNodeBase folderNode;
在Method1中:
personNode = new TreeNodeBase("folder",value from the database, false);
personNode.getChildren().add(new TreeNodeBase("document", document name, true));
如果创建的文件夹有子文件夹,我会调用另一种方法来查找它的子文件夹及其文件。如果存在,则使用以下代码将文件夹添加到父文件夹。
在Method2中:
while(end of all folders list) {
folderNode = new TreeNodeBase("person", folder1, false);// add all folders
folderNode.getChildren().add(new TreeNodeBase("document", document name, true));//add document
personNode.getChildren().add(folderNode); //add sub folders to parent folder
}
绑定到组件返回的方法:
treeData.getChildren().add(personNode);
return treeData;
使用此代码,我最终将所有子文件夹添加到单个文件夹。因此,我需要获取父文件夹引用(或ID)以便将其子文件夹添加到其中。
我的问题是:如何使用此行代码获取创建的文件夹ID(或引用),或者建议以其他方式查找解决方案:
personNode = new TreeNodeBase("folder",value from the database, false);
谢谢:)
答案 0 :(得分:0)
要识别每个新的 treenodebase()以便稍后引用(或使用),我们可以使用TreeNodeBase类的方法 setIdentifier()。通过这种方式,我们可以唯一地识别每个节点。
folderNode.setIdentifier(folder identification number);// where folderNode is TreeNodeBase Object and folder identification number can be any unique number for created node.