0

JSF2を使用してxhtmlページのテーブルにfloatの2D配列を表示したいのですが、その方法がわかりません。グーグルで答えを見つけようとしましたが、見つかりませんでした。すべての例でクラスオブジェクトが表示されていたため、テーブルで機能させることができませんでした。

引用は次のとおりです。あるサイズの配列があります-配列のサイズは入力されたデータによって異なります:float[][]変数=newfloat [size1] [size2]

ユーザーがデータを入力してボタンを押すと、管理対象Beanでメソッドが呼び出されます。計算が開始され、テーブルにデータが入力されます。

配列を表示する方法を教えてください。

4

1 に答える 1

0

これを実現するには、c:forEachタグを使用してaを動的に構築できますh:panelGridsize2列番号であるをプロパティとして保存し、すべての入力番号を通常のに保存するだけ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}リストの最初の配列の長さはどこになりますか(すべてが同じ長さであると仮定します)。

幸運を。

于 2013-01-29T21:39:48.030 に答える