Jsf primefaces数据表未绑定

Jsf primefaces数据表未绑定,jsf,primefaces,managed-bean,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

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”)
@会议范围
公共类UserManagedBean{
//..
/**
*获取用户列表。
* 
*@返回列表-用户列表
*/
公共最终列表getUserList(){
userList=newarraylist();
addAll(getUserService().getItems());
返回用户列表;
}
}
我使用的是spring、hibernate和jsf管理的bean。 谁能帮帮我吗?

如果出现以下情况,则您发布的代码应该有效:

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

您能验证上述内容吗?

代码中需要更正的几点内容:

  • 不要在getter中执行业务逻辑;将该代码移动到
    @PostConstruct

  • 不要使用
    @SessionScoped
    bean来支持页面;这是一种设计的味道,几乎永远不会有好的结局。改为使用
    @RequestScoped
    @ViewScoped

  • facelets引擎将忽略
    之外的所有内容。这意味着,您在其外部定义的所有标记都将无效(例如,

  • 相关阅读:


    您的用户列表是否从bean中正确填充?是的,我在数据库中有2个元素,并且我的用户列表成功地收取了
    UserManagedBean
    的代码,没有它,我们只能猜测。控制台中是否有任何错误?bean的名称是大写的
    U
    ,或者可能是
    userManagedBean
    ?@ManagedBean(name=“userManagedBean”)@SessionScoped公共类userManagedBean{/***获取用户列表。**返回列表-用户列表*/公共最终列表getUserList(){userList=new ArrayList();userList.addAll(getUserService().getItems());return userList;}这是一个很长的方法,但是尝试使用这样的列,如果从getter中删除
    final
    ,会怎么样?什么都没有发生,我认为这不是“final”的问题,因为add user正在工作,getter是否被调用?屏幕截图是来自getter还是其他方法?