Primefaces dataTable未呈现

时间:2015-03-05 17:46:25

标签: jsf primefaces datatable

我无法找出我做错了什么,所以我的dataTable没有显示在网页上。

我创建的User类并不是很复杂,但是我尝试在bean中设置了这三个以上的属性。

唯一显示的是facet Text“Test Header”

我缺少什么?

Testmonitor .xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<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">
    <head>
        <title>Test Monitor</title>
        <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
    </head>
    <body onload="#{testdata.createUsers()}">
        <p:dataTable id="overviewTable" var="collector" sortOrder="descending" value="#{testdata.userList}">

            <f:facet name="header">
                Test Header
            </f:facet>

            <p:column headerText="IP">
                <h:outputText value="#{collector.ip}" />
            </p:column>

            <p:column headerText="CollectorID">
                <h:outputText value="#{collector.collectorId}" />
            </p:column>     

            <p:column headerText="ID">
                <h:outputText value="#{collector.id}" />
            </p:column>                                        


        </p:dataTable>
    </body>
</html>

豆:Testdata.java

package MonitorTest;


import UserAndPosition.User;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.util.List;


@ManagedBean
@SessionScoped
public class Testdata {

    private List<User> UserList;
    private User aUser=new User();

    public void createUsers() {
        aUser.setCollectorId("AnyCollectorID");
        aUser.setId("WND9L320NDUD");
        aUser.setIp("192.168.2.1");

        UserList.add(aUser);
        //System.out.println("Post Construct durchgelaufen");

    }
    /**
     * Regular Getter- and Setter Methods.
     */
    public Testdata() {
    }

    public List<User> getUserList() {
        return UserList;
    }

    public void setUserList(List<User> UserList) {
        this.UserList = UserList;
    }

}

提前致谢

2 个答案:

答案 0 :(得分:1)

我没有测试过,但您肯定需要h:headh:body

同样在onload中,您只能使用脚本(不是表达式语言),而是使用createUsers()注释@PostConstruct - 然后只要创建bean,该方法就会运行。

答案 1 :(得分:0)

我找到了解决方案:在错误发生之前,我更改了Netbeans中的项目属性,以免index.xhtml显示为初始页面。我刚进入&#34; /Testmonitor.xhtml"作为相对路径。 &#34; / faces&#34;然后,url的路径丢失了所有JSF或primefaces组件都没有显示(即使我没有收到任何错误消息......)

我不知道为什么这个&#34; / faces&#34;在网址中是如此重要,但显然它是!

有人能解释一下/面临的原因吗?