У меня в JSF rich:tree
, вот так:
<rich:tree value="#{MyBacking.treeNodes}" var="item"
nodeFace="#{item.type}">
<rich:treeNode type="folder"
<h:outputText value="#{item.folder}" />
</rich:treeNode>
<rich:treeNode type="file"
<h:outputText value="#{item.contfile}" />
</rich:treeNode>
</rich:tree>
и ошибка времени выполнения Java
'#{item.type}' Property 'type' not found on type java.lang.String
Но я посмотрел на javadoc для org.richfaces.model.TreeNodeImpl
, и нет упоминания о методе назначения типа узлу дерева. Как это сделать?
EDIT
Я изменил код в соответствии с предоставленным ответом. Хотя это кажется правильным, мое дерево теперь игнорируется. Ява выглядит так:
В моем бобе (MyBacking):
public TreeNodeImpl<LogTreeItem> getTreeNodes() {
TreeNodeImpl<LogTreeItem> rootNode = new TreeNodeImpl<LogTreeItem>();
LogTreeItem rootItem = new LogTreeItem();
rootItem.setType("folder");
rootItem.setName("folderName");
rootNode.setData(rootItem);
return rootNode;
}
Класс предмета:
public class LogTreeItem {
private String type;
private String name;
public String getType() {
return type;
}
public void setType(String t) {
type = t;
}
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
}
Фрагмент JSF, таким образом, теперь:
<rich:tree value="#{MyBacking.treeNodes}" var="item" nodeFace="#{item.type}">
<rich:treeNode type="folder">
<h:outputText value="#{item.name}" />
</rich:treeNode>
</rich:tree>
Все, что я сейчас пытаюсь сделать, - это распознать дерево. Поскольку я только создаю дерево с rootNode, я ожидал вывода дерева с одним узлом, но вместо этого я вообще ничего не вижу. Я знаю, что я близко, но я просто не могу понять, какой твик привел бы его в чувство.
Большое спасибо