Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 素数面,无限包含子节点_Jsf_Primefaces_Treenode_Treetable - Fatal编程技术网

Jsf 素数面,无限包含子节点

Jsf 素数面,无限包含子节点,jsf,primefaces,treenode,treetable,Jsf,Primefaces,Treenode,Treetable,我想使用创建一个树表 我正在循环对象以动态设置它。以下是我的bean代码: public class ModuleMB extends GenericMB<Module,ModuleService, Long> { @Autowired ModuleRepository moduleRepository; private Document selectedDocument; public ModuleMB() { super(Mo

我想使用创建一个树表

我正在循环对象以动态设置它。以下是我的bean代码:

public class ModuleMB extends GenericMB<Module,ModuleService, Long> {

    @Autowired
    ModuleRepository moduleRepository;

    private Document selectedDocument;

    public ModuleMB() {
        super(Module.class);
    }

    @Autowired
    @Override
    public void setService(ModuleService service) {
        this.service = service;
    }

    public TreeNode getRoot() {
        TreeNode root = new DefaultTreeNode("root", null);
        Iterable<Module> moduleList = moduleRepository.findAll();
        for (Module m : moduleList) {
            TreeNode modules = new DefaultTreeNode(new Document(m.getLabel(), Long.toString(m.getLastModified()), m.getClass().getName()), root);
        }
        for (TreeNode curModuleNode : root.getChildren()) {
            System.out.println("ROWKEY : " + curModuleNode.getRowKey());
            for (Module m : moduleList) {
                System.out.println("MODULE LABEL : " + m.getLabel());
                for (ModuleVersion mv : m.getVersions()) {
                        System.out.println("MV LABEL : " + mv.getLabel());
                        TreeNode moduleVersions = new DefaultTreeNode(new Document(mv.getLabel(), Long.toString(mv.getLastModified()), mv.getClass().getName()), curModuleNode);
                    }
                }
        }
        return root;
    }

    public Document getSelectedDocument() {
        return selectedDocument;
    }

    public void setSelectedDocument(Document selectedDocument) {
        this.selectedDocument = selectedDocument;
    }
}
我不明白为什么我的模块版本附加到每个模块上,因为只有第一个模块得到模块版本,而不是其他两个

另外,当单击右侧的loopt时,当单击moduleVersion循环时,会写入模块信息,而不是模块版本信息:

谢谢你的阅读


Snite

由于前两个嵌套for循环,您正在将所有模块的ModuleVersions添加到每个模块中。我将最内部的for循环formModuleVersion mv:移动到原始for循环中:

public TreeNode getRoot() {
    TreeNode root = new DefaultTreeNode("root", null);
    Iterable<Module> moduleList = moduleRepository.findAll();
    for (Module m : moduleList) {
        TreeNode moduleNode = new DefaultTreeNode(new Document(m.getLabel(), Long.toString(m.getLastModified()), m.getClass().getName()), root);
        System.out.println("ROWKEY : " + moduleNode.getRowKey());
        System.out.println("MODULE LABEL : " + m.getLabel());
        for (ModuleVersion mv : m.getVersions()) {
            System.out.println("MV LABEL : " + mv.getLabel());
            TreeNode moduleVersions = new DefaultTreeNode(new Document(mv.getLabel(), Long.toString(mv.getLastModified()), mv.getClass().getName()), curModuleNode);
        }
    }
    return root;
}

谢谢,这就是重点。以前我试着做一个像你这样的循环,但是我有一个例外,说父节点在添加子节点之前没有终止,你的代码是可以的,谢谢!
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 1
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 2
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
ROWKEY : 0
MODULE LABEL : First module of the IDF market
MV LABEL : V1
MV LABEL : V2
MODULE LABEL : Second module of the IDF market
MODULE LABEL : test A
...
public TreeNode getRoot() {
    TreeNode root = new DefaultTreeNode("root", null);
    Iterable<Module> moduleList = moduleRepository.findAll();
    for (Module m : moduleList) {
        TreeNode moduleNode = new DefaultTreeNode(new Document(m.getLabel(), Long.toString(m.getLastModified()), m.getClass().getName()), root);
        System.out.println("ROWKEY : " + moduleNode.getRowKey());
        System.out.println("MODULE LABEL : " + m.getLabel());
        for (ModuleVersion mv : m.getVersions()) {
            System.out.println("MV LABEL : " + mv.getLabel());
            TreeNode moduleVersions = new DefaultTreeNode(new Document(mv.getLabel(), Long.toString(mv.getLastModified()), mv.getClass().getName()), curModuleNode);
        }
    }
    return root;
}