これを実現するには、c:forEach
タグを使用してaを動的に構築できますh:panelGrid
。size2
列番号であるをプロパティとして保存し、すべての入力番号を通常のに保存するだけjava.util.List
です。次に、そのサイズをh:panelGrid
columns
属性に設定すると、コンポーネントが行を分割します。また、タグ内のコンテンツのスタイルを設定c:forEach
して、テーブルの動作を与えるためにタグの境界を設定することもできます。
<h:form>
<h:panelGrid columns="#{bean.numberCount}">
<c:forEach var="num" items="#{bean.numberList}">
#{number}
</c:forEach>
</h:panelGrid>
</h:form>
編集済み
元の構造を維持したいがリストにある場合は、を作成できますList<List<Float>>
。これは、フロートオブジェクトを含むリストで構成されるリストを意味します。2D配列と同じです。
private List<List<Float>> _Matrix;
public List<List<Float>> get_Matrix() {
return this._Matrix;
}
/**
* Constructor for BackingBean.
*/
public BackingBean() {
this._Matrix = new ArrayList<List<Float>>();
this._Matrix.add(new ArrayList<Float>());
this._Matrix.add(new ArrayList<Float>());
this._Matrix.get(0).add(1.0f);
this._Matrix.get(0).add(2.0f);
this._Matrix.get(0).add(3.0f);
this._Matrix.get(1).add(1.0f);
this._Matrix.get(1).add(2.0f);
this._Matrix.get(1).add(3.0f);
}
1.0
上記のコードでは、2つの行と値を2.0
持ち、各行に2次元配列と同等のものを作成しています3.0
。このコードを使用して、ビュー全体で反復することができます。
<h:panelGrid columns="#{backingBean._ColumnNumber}">
<c:forEach var="row" items="#{backingBean._Matrix}">
<c:forEach var="value" items="#{row}">
#{value}
</c:forEach>
</c:forEach>
</h:panelGrid>
#{backingBean._ColumnNumber}
リストの最初の配列の長さはどこになりますか(すべてが同じ長さであると仮定します)。
幸運を。