JSF + PrimeFaces返回空白页面

时间:2017-03-25 17:47:45

标签: jsf primefaces jsf-2

我是JSF和PrimeFaces的新手

所以这是我的fields.xhtml

<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:p="http://primefaces.org/ui">
<h:body>
<h:form>
    <p:dataTable var="field" value="#{fieldController.getFields()}">
        <p:column headerText="Id">
            <h:outputText value="#{field.field_id}" />
        </p:column>

        <p:column headerText="Label">
            <h:outputText value="#{field.lable}" />
        </p:column>

        <p:column headerText="Type">
            <h:outputText value="#{field.type}" />
        </p:column>

        <p:column headerText="Required">
            <h:outputText value="#{field.required}" />
        </p:column>

        <p:column headerText="Is Active">
            <h:outputText value="#{field.isActive}" />
        </p:column>
    </p:dataTable>
</h:form>
</h:body>
</html>

这是FieldController

@ManagedBean(name = "fieldController", eager = true)
public class FieldController {

@ManagedProperty("#{fileDAO}")
private FieldDAO fieldDAO;

public FieldDAO getFieldDAO() {
    return fieldDAO;
}

public void setFieldDAO(FieldDAO fieldDAO) {
    this.fieldDAO = fieldDAO;
}

public List<Field> getFields() throws Exception{
    return fieldDAO.getFields();
}

}

最后我只看到空白的白页。 请帮我找一下我的问题所在。

1 个答案:

答案 0 :(得分:0)

使用以下代码进行测试。 Primefaces自动调用getter方法。您只需设置字段名称即可。在您的示例中,他们只使用getter方法使用方法名称而不使用(#{fieldController.fields}

<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:p="http://primefaces.org/ui">
<h:body>
<h:form>
    <p:dataTable var="field" value="#{fieldController.fields}">
        <p:column headerText="Id">
            <h:outputText value="#{field.field_id}" />
        </p:column>

        <p:column headerText="Label">
            <h:outputText value="#{field.lable}" />
        </p:column>

        <p:column headerText="Type">
            <h:outputText value="#{field.type}" />
        </p:column>

        <p:column headerText="Required">
            <h:outputText value="#{field.required}" />
        </p:column>

        <p:column headerText="Is Active">
            <h:outputText value="#{field.isActive}" />
        </p:column>
    </p:dataTable>
</h:form>
</h:body>
</html>