2015-01-06 82 views
0

我有一個問題,我的primefaces數據表中,行是空的。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

+0

你的userList是否正確地從bean中填充? –

+0

是的,我有2個元素在數據庫中,我的用戶列表成功收取 –

+1

發佈'UserManagedBean'的代碼,沒有它我們只能猜測。控制檯中是否有錯誤?這個bean的名字是大寫的'U'還是'userManagedBean'? –

回答

0

你已經發布的代碼應該工作,如果:

  • getUserList()返回一些行,充滿了一些數據
  • User類有一個字段firstname與getter和setter(請注意大小寫,n是小寫)
  • firstname字段已填充(非空)

你可以驗證上述嗎?

+0

[] [1] [1]:HTTP://i.stack.imgur .com/hnZpG.png –

+0

如果你從getter中刪除'final'會怎麼樣? –

+0

什麼也沒有發生,我認爲這不是'最終'的問題,因爲添加用戶正在工作正常 –

0

有幾件事情在你的代碼更正:

  1. 不要在吸氣業務邏輯;將該代碼移動到@PostConstruct

  2. 請勿使用@SessionScoped bean備份頁面;這是一種設計氣味,幾乎永遠不會結束。改爲使用@RequestScoped@ViewScoped

  3. 除了<ui:composition/>之外的所有內容都會被facelets引擎忽略。這是什麼意思是,你外面定義的所有標籤都會有例如沒有效果(<h:body/>

相關閱讀:

+0

感謝@kolossus –