在网页中,我使用<h:dataTable>
来展示它们。
JSF页面示例:
<h:dataTable value="#{bean.scores}" rowIndexvar="index">
<h:column>
<h:outputText value="#{index+1}" />
</h:column>
<h:column>
<h:outputText value="#{score.studentId}" />
</h:column>
<h:column>
<h:inputText value="#{score.teacherScore}" />
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{useMB.save}" />
<h:messages />
问题与我的ManagedBean有关: useMB.java
1.我需要写什么getter和setter方法才能写入商店
数据库中的<h:inputText value="#{score.marks}" />
值?
2.如何使用dataTable,JSF和java在同一主题的数据库中保存不同的学生分数?
3. xhtml 页面需要做哪些更改?
答案 0 :(得分:1)
您需要在托管bean中使用一个集合来保存表中行的值。表中的每一行都代表集合中的一个元素,dataTable
中的每个元素都可以通过var
属性中给出的别名来访问。
<h:dataTable value="#{bean.scores}" rowIndexvar="index" var="score">
<h:column>
<h:outputText value="#{index+1}" />
</h:column>
<h:column>
<h:outputText value="#{score.studentId}" />
</h:column>
<h:column>
<h:inputText value="#{score.teacherScore}" />
</h:column>
</h:dataTable>
在托管bean中,您需要有一个Collection(或Array)元素,每个元素都有名称为studentId
和teacherScore
的成员以及它们的访问者。
public class ManagedBean {
private Score[] scores;
public Score[] getScores() { return scores; }
public void setScores(Score[] scores) {
this.scores = scores;
}
}
Score类应该(至少)看起来像这样:
public class Score {
private String studentId;
private String teacherScore;
public String getStudentId() { return studentId; }
public void setStudentId(String studentId) { this.studentId = studentId; }
public String getTearcherScore() { retyrn teacherScore; }
public void setTeacherScore(String tearcherScore) { this.tearcherScore = tearcherScore; }
}