2013-02-28 46 views
1

表我的數據表數據表2代顯示不同實體關係

<h:form> 
    <h:panelGroup> 
     <h:dataTable columnClasses="input-radio,input-label" id="account-table" value="#{accountController.items}" var="item" border="0"> 
      <h:column> 
       <h:outputText value="#{item.id}"/> 
      </h:column> 
      <h:column> 
       <h:outputText value="#{item.name}"/> 
      </h:column> 
     </h:dataTable> 
    </h:panelGroup> 
</h:form> 

我有一個是在與用戶實體關係的賬戶實體。無論如何,從帳戶檢索用戶數據,而不是爲帳戶和用戶製作2個數據表?

getItems使用JSF 2方法

public DataModel getItems() { 
    if (items == null) { 
     items = getPagination().createPageDataModel(); 
    } 
    return items; 

} 

和管理豆使用CRUD

回答

1

如果DataModel類具有訪問user實體,你可以遍歷在JSF頁面中的關係自動生成鏈接對象:

  • #{item.name} - 獲取項目名稱
  • #{item.user.name} - 訪問用戶名,如果用戶在項目一個getter

例如您DataModel

public class DataModel { 

    private Long id; 
    private String name; 
    private User user; 
    ... 
} 

JSF頁面:

<h:form> 
    <h:panelGroup> 
     <h:dataTable columnClasses="input-radio,input-label" id="account-table" value="#{accountController.items}" var="item" border="0"> 
      <h:column> 
       <h:outputText value="#{item.id}"/> 
      </h:column> 
      <h:column> 
       <h:outputText value="#{item.user.name}"/> <!-- traverse to user entity here --> 
      </h:column> 
     </h:dataTable> 
    </h:panelGroup> 
</h:form>