Jsf 素数面,无限包含子节点
我想使用创建一个树表 我正在循环对象以动态设置它。以下是我的bean代码: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
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;
}