【问题标题】:primefaces datatable not bindingprimefaces数据表不绑定
【发布时间】:2015-01-06 13:30:12
【问题描述】:

我的 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。 有人可以帮帮我吗?

【问题讨论】:

  • 您的 userList 是否从 bean 正确填充?
  • 是的,我的数据库中有 2 个元素,我的用户列表已成功收费
  • 贴出UserManagedBean的代码,没有它我们只能猜测。控制台中是否有任何错误? bean 的名称是大写的U,还是userManagedBean
  • @ManagedBean(name = "UserManagedBean") @SessionScoped public class UserManagedBean {/** * 获取用户列表。 * * return List - 用户列表 */ public final List getUserList() { userList = new ArrayList(); userList.addAll(getUserService().getItems());返回用户列表; }
  • 这是一个长镜头,但尝试使用这样的列

标签: jsf primefaces managed-bean


【解决方案1】:

您发布的代码在以下情况下应该可以工作:

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

你能验证以上吗?

【讨论】:

  • 如果从 getter 中删除 final 会怎样?
  • 什么都没发生,我认为这不是“最终”的问题,因为添加用户工作正常
  • getter 是否被调用?截图是getter还是其他方法?
【解决方案2】:

您的代码中需要更正的几件事:

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

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

  3. facelets 引擎会忽略&lt;ui:composition/&gt; 之外的所有内容。这意味着您在其外部定义的所有标签都将无效(例如&lt;h:body/&gt;

相关阅读:

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2015-04-09
    • 2011-12-02
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多