你好
我已经为richfaces树标记编写了一个简单的示例,但是它仅扩展了根节点(但没有将它们折叠回去)
xhtml代码:
<rich:panel id="unitTest" width="240" height="400">
<h:form>
<rich:tree>
<rich:recursiveTreeNodesAdaptor roots="#{tree.nodes}" var="item" nodes="#{item.nodes}" >
<rich:treeNode>
<h:outputText value="#{item}"/>
</rich:treeNode>
</rich:recursiveTreeNodesAdaptor>
</rich:tree>
</h:form>
</rich:panel>
Java bean代码:
import java.util.*;
public class UnitTreeNode
{
String name;
List<UnitTreeNode> children;
public UnitTreeNode()
{
this.name="";
}
public UnitTreeNode(String name)
{
this.name=name;
}
public List<UnitTreeNode> getNodes()
{
if(children==null)
{
children=new ArrayList<UnitTreeNode>();
for(int i=0;i<3;i++)
children.add(new UnitTreeNode(name+i));
}
return children;
}
public String toString()
{
return name;
}
}
配置:
<managed-bean>
<managed-bean-name>tree</managed-bean-name>
<managed-bean-class>UnitTreeNode</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
我正在使用myfaces 1.2.8和richfaces 3.3.2.SR1,但看不到为什么它不起作用。
最佳答案
问题是默认情况下,树的switchType是ajax,由于周围的标签,您的ajax请求没有正确提交到服务器(似乎是一个丰富的Faces实现的错误,以后的发行版中可能会解决)。
所以这是解决方案
使用<rich:tree switchType="server">
或只是删除<h:form>
标签
希望这可以帮助