gpt4 book ai didi

java - 从数据库中加载内容到 TreeTable

转载 作者:行者123 更新时间:2023-11-30 11:41:24 24 4
gpt4 key购买 nike

Primefaces TreeTable 节点似乎以相反的方式工作。

您创建一个父级,然后创建一个子级,而不是告诉子级它属于哪个父级。 parent 应该了解自己的 child ,而不是相反。

所以...我的问题是:

我需要从我的数据库中加载未定义数量的数据(祖 parent 、 parent 、子女和孙子女)。

如何动态地将它们加载到 TreeTable 中?我想不出在我的 for-each 中创建 TreeNode 并设置它的父节点的方法。

任何人都可以给我和想法吗?

最佳答案

我还没有测试过这个解决方案,但我认为它应该可行。 primefaces 展示中的示例都是硬编码的。要使其动态化,您必须使用数组。
因此,例如下面的硬编码代码部分:

 TreeNode documents = new DefaultTreeNode(new Document("Documents", "-", "Folder"), root);  
TreeNode pictures = new DefaultTreeNode(new Document("Pictures", "-", "Folder"), root);
TreeNode music = new DefaultTreeNode(new Document("Music", "-", "Folder"), root);

可以替换为:

 Map<String, TreeNode> rootNodes = new HashMap<String, TreeNode>();

//Retrieve the list of root Nodes. eg Tables in the database.
for(Table table : databaseTables){

//table.getTableName() will be the name of the node, it could be something like "music" or "documents"
rootNodes.add(table.getTableName(), new DefaultTreeNode(table.getTableName(), new Document......, root);
}

我之所以将它们添加到 map 中,是为了如果你想引用它们,你可以使用键作为引用。现在如果你想将节点添加到图片节点,例如

 //Create a new map
Map<String, TreeNode> pictureNodes = new HashMap<String, TreeNode>();

//now loop through your picture objects
for(picture : pictures){
pictureNode.add(new DefaultTreeNode(picture.getName(), ......., root.get("pictures"));
}

使用此方法,您可以递归循环遍历尽可能多的层次结构。我无法测试此代码(只是 Notepad++ ),因为我目前在办公室。但请尝试一下,如果您仍然遇到困难,我可以在几个小时后回家后做一些更详细的事情。

关于java - 从数据库中加载内容到 TreeTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com