JSF + PrimeFaces returns 空白页
JSF + PrimeFaces returns blank page
我是 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();
}
}
最后我只看到空白的白页。
请帮我看看我的问题出在哪里。
使用以下代码进行测试。 Primefaces 自动调用 getter 方法。您只需设置字段名称。正如在您的示例中,它们仅在 getter 方法中使用方法名称而不使用 get (#{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>
我是 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();
}
}
最后我只看到空白的白页。 请帮我看看我的问题出在哪里。
使用以下代码进行测试。 Primefaces 自动调用 getter 方法。您只需设置字段名称。正如在您的示例中,它们仅在 getter 方法中使用方法名称而不使用 get (#{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>