1

クラスの生徒の宿題の点数を集める必要があります。私がこれまでやってきたことは

  1. 学生IDのリストを取得する
  2. ui:repeat を使用して、リストをループし、各学生 ID について、i

    2a) 値が現在の学生 ID である h:inputText を表示し、次に

    2b) 上記の (2a) のテキストボックスの右側に、教師がその生徒のスコアを入力するための別の h:inputText を表示します (今のところ、その値はページを表示するためのダミー変数です)。

  3. すべてのデータを送信するための単一のコマンドボタンがあります。

たとえば、20 人の生徒がいる場合、20 行あり、各行には 2 つの h:inputText があり、1 つは既に現在の student_id が含まれており、もう 1 つは教師がスコアを入力できるように空になっています。

これらの値を正しく収集して、正しい学生 ID が正しいスコアにリンクされるようにするにはどうすればよいですか。

クラスの生徒数はいつでも変更できるため、テキストフィールドの数をハードコーディングできないことに注意してください。

4

1 に答える 1

2

モデル オブジェクトを作成します。

public class Score {

    private Long studentId;
    private BigDecimal teacherScore;

    // Getters/setters.
}

一部の JSF マネージド Bean でそれらのリストを取得します。

private List<Score> scores;

それらを提示するために使用<h:dataTable>します。

<h:dataTable value="#{bean.scores}" var="score">
    <h:column><h:inputText value="#{score.studentId}" /></h:column>
    <h:column><h:inputText value="#{score.teacherScore}" /></h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{bean.save}" />
<h:messages />

それでおしまい。

于 2012-05-08T12:58:31.197 に答える