これを実現するには、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}リストの最初の配列の長さはどこになりますか(すべてが同じ長さであると仮定します)。
幸運を。