Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 2 Primefaces TreeNode不展开_Jsf 2_Primefaces_Treetable - Fatal编程技术网

Jsf 2 Primefaces TreeNode不展开

Jsf 2 Primefaces TreeNode不展开,jsf-2,primefaces,treetable,Jsf 2,Primefaces,Treetable,我是Primefaces新手,我尝试使用Primefaces 3.3.1中的树表。 开始时仅显示树表的第一条记录。然后,当我点击这个小图像来展开树表时,什么都没有发生。在FireBug中,我可以看到以下结果: <partial-response> <error> <error-name>class java.lang.StringIndexOutOfBoundException</error-name> &l

我是Primefaces新手,我尝试使用Primefaces 3.3.1中的树表。 开始时仅显示树表的第一条记录。然后,当我点击这个小图像来展开树表时,什么都没有发生。在FireBug中,我可以看到以下结果:

<partial-response>
    <error>
        <error-name>class java.lang.StringIndexOutOfBoundException</error-name>
        <error-message>String index out of range: -1</error-message>
    </error>
</partial-response>
下面是创建树表的JSF托管bean:

public class MyModel{
    private String field_1;
    private String field_2;
    public MyModel(){};
    public MyModel(String field_1, String field_2){
        this.field_1 = field_1;
        this.field_2 = field_2;
    }
    //Getters and setters
}    
@ManagedBean
@SessionScoped
public class MyManagedBean{
    public TreeNode root;
}
public MyManagedBean{
    root = new DefaultTreeNode("root",null);
    TreeNode node0 = new DefaultTreeNode(new MyModel("Field 1", "Field 2"), root);
    TreeNode sub0 = new DefaultTreeNode(new MyModel("Sub", "Sub"), node0);
    //node0.setExpanded(true);
}
public TreeNode getRoot(){
    return root;
}
最后,我的JSF文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <f:view contentType="text/html">
        <h:head>
            <f:facet name="first">
                <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
                <title>PrimeFaces</title>
            </f:facet>
        </h:head>
        <h:body>
            <p:treeTable value="#{myManagedBean.root}" var="test">    
            <p:column>
                <f:facet name="header">
                    Field 1
                </f:facet>
                <h:outputText value="#{test.field_1}" />
            </p:column>
            <p:column>
                <f:facet name="header">
                    Field 2
                </f:facet>
                <h:outputText value="#{test.field_2}" />
            </p:column>
        </p:treeTable>
    </h:body>
</f:view>

素面
字段1
字段2


提前感谢您的帮助

解决了它。我忘了用h:form标签包装树桌。现在很好用