PrimeFaces - TreeTable问题从展示示例运行



我使用JSF 2.0和PrimeFaces 3.0,可以使TreeTable工作。/index.xhtml @69,62 value="#{Document .name}":类'Document'没有可读属性'name'。"

代码如下:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Example</title>
    </h:head>
    <h:body>
        <h:form>
            <p:treeTable value="#{documentsController.root}" var="document">
                <p:column>
                    <f:facet name="header">
                        Name
                    </f:facet>
                    <h:outputText value="#{document.name}" />
                </p:column>
                <p:column>
                    <f:facet name="header">
                        Size
                    </f:facet>
                    <h:outputText value="#{document.size}" />
                </p:column>
                <p:column>
                    <f:facet name="header">
                        Type
                    </f:facet>
                    <h:outputText value="#{document.type}" />
                </p:column>
            </p:treeTable>
        </h:form>
    </h:body>
</html>

ManagedBean:

    @ManagedBean
    @SessionScoped
    public class DocumentsController implements Serializable {
    private TreeNode root;
    public DocumentsController() {
        root = new DefaultTreeNode("root", null);
        TreeNode documents = new DefaultTreeNode(new Document("Documents", "-", "Folder"), root);
        TreeNode pictures = new DefaultTreeNode(new Document("Pictures", "-", "Folder"), root);
        TreeNode music = new DefaultTreeNode(new Document("Music", "-", "Folder"), root);
        TreeNode work = new DefaultTreeNode(new Document("Work", "-", "Folder"), documents);
        TreeNode primefaces = new DefaultTreeNode(new Document("PrimeFaces", "-", "Folder"), documents);
        //Documents
        TreeNode expenses = new DefaultTreeNode("document", new Document("Expenses.doc", "30 KB", "Word Document"), work);
        TreeNode resume = new DefaultTreeNode("document", new Document("Resume.doc", "10 KB", "Word Document"), work);
        TreeNode refdoc = new DefaultTreeNode("document", new Document("RefDoc.pages", "40 KB", "Pages Document"), primefaces);
        //Pictures
        TreeNode barca = new DefaultTreeNode("picture", new Document("barcelona.jpg", "30 KB", "JPEG Image"), pictures);
        TreeNode primelogo = new DefaultTreeNode("picture", new Document("logo.jpg", "45 KB", "JPEG Image"), pictures);
        TreeNode optimus = new DefaultTreeNode("picture", new Document("optimusprime.png", "96 KB", "PNG Image"), pictures);
        //Music
        TreeNode turkish = new DefaultTreeNode(new Document("Turkish", "-", "Folder"), music);
        TreeNode cemKaraca = new DefaultTreeNode(new Document("Cem Karaca", "-", "Folder"), turkish);
        TreeNode erkinKoray = new DefaultTreeNode(new Document("Erkin Koray", "-", "Folder"), turkish);
        TreeNode mogollar = new DefaultTreeNode(new Document("Mogollar", "-", "Folder"), turkish);
        TreeNode nemalacak = new DefaultTreeNode("mp3", new Document("Nem Alacak Felek Benim", "1500 KB", "Audio File"), cemKaraca);
        TreeNode resimdeki = new DefaultTreeNode("mp3", new Document("Resimdeki Gozyaslari", "2400 KB", "Audio File"), cemKaraca);
        TreeNode copculer = new DefaultTreeNode("mp3", new Document("Copculer", "2351 KB", "Audio File"), erkinKoray);
        TreeNode oylebirgecer = new DefaultTreeNode("mp3", new Document("Oyle bir Gecer", "1794 KB", "Audio File"), erkinKoray);
        TreeNode toprakana = new DefaultTreeNode("mp3", new Document("Toprak Ana", "1536 KB", "Audio File"), mogollar);
        TreeNode bisiyapmali = new DefaultTreeNode("mp3", new Document("Bisi Yapmali", "2730 KB", "Audio File"), mogollar);
    }
    /**
     * 
     * @return
     */
    public TreeNode getRoot() {
        return root;
    }
}

豆:

class Document {
    private String name;
    private String size;
    private String type;
    public Document(String name, String size, String type) {
        this.name = name;
        this.size = size;
        this.type = type;
    }
    public Document() {}
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSize() {
        return size;
    }
    public void setSize(String size) {
        this.size = size;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }

}

任何想法?这与showcase的方式完全相同:http://www.primefaces.org/showcase-labs/ui/treeTable.jsf

解决方案在下面。唯一的变化是,将bean从受保护访问更改为public:

public class Document {
private String name;
private String size;
private String type;
public Document(String name, String size, String type) {
    this.name = name;
    this.size = size;
    this.type = type;
}
public Document() {}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getSize() {
    return size;
}
public void setSize(String size) {
    this.size = size;
}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
}

谢谢你们了!

验证public class Document implements Serializable {

http://code.google.com/p/primefaces/source/browse/examples/trunk/prime-showcase/src/main/java/org/primefaces/examples/domain/Document.java?spec=svn2813& r = 2813

相关内容

  • 没有找到相关文章

最新更新