我的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。 有人可以帮帮我吗?
答案 0 :(得分:0)
您发布的代码应符合以下条件:
getUserList()
返回一些行,其中包含一些数据User
类有一个带有getter和setter的字段firstname
(注意案例,n
在列中是小写的)firstname
字段(非空)你可以验证以上内容吗?
答案 1 :(得分:0)
您的代码中需要纠正的一些事项:
不要在getter中做业务逻辑;将该代码移至@PostConstruct
不要使用@SessionScoped
bean返回页面;它是一种设计气味,几乎永远不会结束。请改用@RequestScoped
或@ViewScoped
。
facelets引擎会忽略<ui:composition/>
之外的所有内容。这意味着您在其外部定义的所有标签都没有效果(例如<h:body/>
)
相关阅读: