是否可以使用jsf h:datatable来拥有多行

使用h:datatable,我们可以显示如下数据

  1. JEMS
  2. 汤姆
  3. chirs
  4. 掠夺

但我可以显示如下所示:

  1. Jems 2.汤姆
  2. 克里斯4.哈里

阿拉比,西class牙人

您可以使用支持“newspaperColumns”和“newspaperOrientation”属性的t:dataTable组件 。 newspaperColumns确定表格将被分割的列数和newspaperOrientation报纸表格中报纸列的方向。

在您的示例中,bean:

public class Bean { public List getPeople() { List people = new ArrayList(); people.add("Jems"); people.add("tom"); people.add("chirs"); people.add("harry"); return people; } } 

和JSF:

         

呈现为:

 
1Jems2tom
3chirs4harry

您可以在模型中进行管理。

例如,将列表拆分成对:

 public class PairedList extends AbstractList> { private final List data; private final T defaultVal; public PairedList(List data, T defaultVal) { this.data = data; this.defaultVal = defaultVal; } @Override public int size() { return (data.size() / 2) + (data.size() % 2); } @Override public Pair get(int index) { int left = index * 2; int right = left + 1; return new Pair(data.get(left), right >= data.size() ? defaultVal : data .get(right)); } @Override public boolean addAll(Collection> c) { throw new UnsupportedOperationException(); } } 

对class级:

 public class Pair { private final T left; private final T right; public Pair(T left, T right) { this.left = left; this.right = right; } public T getRight() { return right; } public T getLeft() { return left; } } 

公开列表的托管bean:

 public class TwoPerRowBean implements Serializable { private final List data = Arrays.asList("Jems", "tom", "chirs", "harry", "Barry"); public List> getPairedData() { return new PairedList(data, "-"); } } 

表配置:

         

您可以将List传递给

 @ViewScoped public class NameClass implements Serializable{ private List list; public void onPageLoad(){ list = someMethod that returns the list; } //...gettters and setters } 

进入.xhtml:

  #{l[0]} #{l[1]}