primefaces数据表不绑定

时间:2015-01-06 13:30:13

标签: jsf primefaces managed-bean

我的primefaces数据表有问题,行是空的。

<h:body>
<ui:composition template="../shared/commonLayout.xhtml">
            <ui:define name="content">
    <h:form>
        <p:dataTable id="users" var="user" value="#{UserManagedBean.userList}" style="width: 40%">
            <p:column>
                <f:facet name="header">
                    <h:outputText value="FirstName" />
                </f:facet>
                <h:outputText value="#{user.firstname}" />
            </p:column>
        </p:dataTable>
    </h:form>
    </ui:define>
    </ui:composition>
</h:body>
@ManagedBean(name = "UserManagedBean")
@SessionScoped
public class UserManagedBean {
//..
/**
     * Get Users List.
     * 
     * @return List - User List
     */
    public final List<User> getUserList() {
        userList = new ArrayList<User>();
        userList.addAll(getUserService().getItems());
        return userList;
    }
}

我使用spring,hibernate,jsf托管bean。 有人可以帮帮我吗? enter image description here

2 个答案:

答案 0 :(得分:0)

您发布的代码应符合以下条件:

  • getUserList()返回一些行,其中包含一些数据
  • User类有一个带有getter和setter的字段firstname(注意案例,n在列中是小写的)
  • 填充firstname字段(非空)

你可以验证以上内容吗?

答案 1 :(得分:0)

您的代码中需要纠正的一些事项:

  1. 不要在getter中做业务逻辑;将该代码移至@PostConstruct

  2. 不要使用@SessionScoped bean返回页面;它是一种设计气味,几乎永远不会结束。请改用@RequestScoped@ViewScoped

  3. facelets引擎会忽略<ui:composition/>之外的所有内容。这意味着您在其外部定义的所有标签都没有效果(例如<h:body/>

  4. 相关阅读: