如何使用java JSP或JSF拆分购物车中的列和行

时间:2010-09-10 19:55:57

标签: jsp jsf

我想在索引中展示一个购物车 我想为每个类别显示3列和5行 实施例

Books
||  Books A   ||   Books B     || Books C
||============||===============||=========
||  Books D   ||    Books E    ||  Books F
||============||===============||=========
||  Books G   ||     Books H   ||  Books I

Video
||   Video A  || Video B       ||  Video C
||============||===============||=========
||  Video D   || Video E       || Video F
||============||===============||=========
|| Video G    || Video H       || Video I

我怎么能像我的例子一样呢?

1 个答案:

答案 0 :(得分:1)

如果您使用JSF2.0和Facelets,则可以使用<ui:repeat><h:dataTable>标记。使您的bean返回按类别分组的项目。在类别中,保留项目列表行。 Row只是一个数组(也可以是列表)。

@ManagedBean
public class Cart {
  List<CategoryItems> getItemsGroupedInCategories() {
    //get items here
  }
}

public class CategoryItems {
  private String categoryName;
  private List<Item[]> itemsRows;
  //constructors, getters/setters
}

然后在JSF XHTML中你输入:

<ui:repeat value="#{cart.itemsGroupedInCategories}" var="categoryItems">
  <h:dataTable value="#{categoryItems.itemsRows}" var="row" >
    <f:facet name="header">
      <h:outputText value="#{categoryItems.categoryName}" />
    </f:facet> 
    <h:column>
      <h:outputText value="#{row[0]}" />
    </h:column>
    <h:column>
      <h:outputText value="#{row[1]}" />
    </h:column>
    <h:column>
      <h:outputText value="#{row[2]}" />
    </h:column>
  </h:dataTable>
</ui:repeat>