是否可以使用jsf h:datatable来拥有多行
使用h:datatable,我们可以显示如下数据
- JEMS
- 汤姆
- chirs
- 掠夺
但我可以显示如下所示:
- Jems 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:
呈现为:
1 Jems 2 tom 3 chirs 4 harry
您可以在模型中进行管理。
例如,将列表拆分成对:
public class PairedList extends AbstractList> { private final List extends T> data; private final T defaultVal; public PairedList(List extends T> 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 extends Pair > 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]}