Estou tentando exibir um conjunto de classes que representam uma arvore com recursiveTreeNode do rich faces , o problema e que não estou entendendo como funciona os atributos , vi o exemplo do site , dei uma simplificada e rodou ate o momento que eu resolvi exibir a parte recursiva .
Apareceu um erro dizendo que eu não havia colocado o atributo root da maneira correta , entao eu queria saber o que eu coloco nesse atributo ?
Aqui o codigo da minha classe recursiva :
package bean;
import java.util.ArrayList;
import java.util.List;
public class Diretorio {
private String nome;
private String dono;
private Diretorio pai;
private List<Diretorio> subDiretorios;
private static Integer i = 1;
public Diretorio(Diretorio pai) {
this.nome = "a"+i;
i++;
this.pai = pai;
subDiretorios = new ArrayList<Diretorio>();
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDono() {
return dono;
}
public void setDono(String dono) {
this.dono = dono;
}
public Diretorio getPai() {
return pai;
}
public void setPai(Diretorio pai) {
this.pai = pai;
}
public List<Diretorio> getSubDiretorios() {
return subDiretorios;
}
public void setSubDiretorios(List<Diretorio> subDiretorios) {
this.subDiretorios = subDiretorios;
}
}
Aqui o codigo do meu managed bean :
package managedbean;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.mapping.Array;
import bean.Diretorio;
public class DiretorioBean {
private List<Diretorio> diretorios;
public DiretorioBean() {
diretorios = new ArrayList<Diretorio>();
Diretorio d1 = new Diretorio(null);
diretorios.add(d1);
Diretorio d2 = new Diretorio(null);
diretorios.add(d2);
Diretorio d3 = new Diretorio(d1);
d1.getSubDiretorios().add(d3);
Diretorio d4 = new Diretorio(d1);
d1.getSubDiretorios().add(d4);
Diretorio d5 = new Diretorio(null);
diretorios.add(d5);
Diretorio d6 = new Diretorio(d5);
d5.getSubDiretorios().add(d6);
}
public final List<Diretorio> getDiretorios() {
return diretorios;
}
public final void setDiretorios(List<Diretorio> diretorios) {
this.diretorios = diretorios;
}
}
Abaixo o codigo da minha pagina :
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
<head>
</head>
<body>
<f:view>
<h:form>
<rich:tree switchType="client">
<rich:treeNodesAdaptor id="dirs" nodes="#{diretorioBean.diretorios}" var="diretorio">
<rich:treeNode>
<h:outputText value="#{diretorio.nome}"/>
</rich:treeNode>
<rich:recursiveTreeNodesAdaptor id="dir" var="subDiretorio" root="#{diretorio.subDiretorios}" nodes="#{subDiretorio.subDiretorios}">
<rich:treeNode>
<h:outputText value="#{subDiretorio.nome}"/>
</rich:treeNode>
</rich:recursiveTreeNodesAdaptor>
</rich:treeNodesAdaptor>
</rich:tree>
</h:form>
</f:view>
</body>
</html>
Abaixo o erro que ta aparecendo :
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /tree.jsp(16,6) Attribute root invalid for tag recursiveTreeNodesAdaptor according to TLD
Alguem por favor pode me ajudar ???