1

私のデータテーブル

<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メソッド

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

}

JSF 2を使用し、管理BeanはCRUDを使用して自動生成されます

4

1 に答える 1

1

DataModelクラスがエンティティにアクセスできる場合はuser、オブジェクトをチェーンすることで、JSFページの関係をトラバースできます。

  • #{item.name}-アイテム名へのアクセス
  • #{item.user.name}-ユーザーがアイテムにゲッターを持っている場合は、ユーザー名へのアクセス

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>
于 2013-02-28T06:35:24.873 に答える