如何在JSF中处理未定义数量的相关inputText

时间:2012-05-08 09:49:45

标签: jsf jsf-2

我需要在课堂上收集学生的作业分数。到目前为止我所做的是

  1. 获取学生ID列表
  2. 使用ui:重复i循环通过列表和每个学生ID,我

    2a)显示一个h:inputText,其值为当前学生ID,然后

    2b)在上面(2a)的文本框右侧,我显示另一个h:inputText,供教师输入该学生的分数(现在该值是一个虚拟变量,只是为了让页面显示)。

  3. 我有一个命令按钮来提交所有数据。
  4. 例如,如果我有20个学生,我会有20行,其中每行有两个h:inputText,一个已经包含当前student_id,另一个是空的,教师可以输入分数。

    如何正确收集这些值,以便将正确的学生ID与正确的分数相关联。

    请注意,我无法对文本字段的数量进行硬编码,因为课程中学生的数量可能随时发生变化。

1 个答案:

答案 0 :(得分: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 />

就是这样。