Assignment クラスのプロパティとして、テスト成績のスコアのベクトルがあります。
xpage に編集ボックスがあり、値を編集してマネージド Bean のベクターに書き戻します。エディット ボックスの値バインディングは次のとおり
<xp:this.value><![CDATA[#{rpt.scores[rowIndex]}]]></xp:this.value>
ですrpt
。毎回何人の学生がテストを受けるかわからないため、編集ボックスは繰り返しコントロールにあります。そのrowIndex
ため、Scores Vector のどの要素にバインドするかを識別するために、繰り返しコントロールを使用しています。
Scores Vector から値を正しく読み取っていますが、値を変更して Vector に書き戻すことができないようです。
Assignment クラスの Scores[n] 要素に値を書き戻すにはどうすればよいですか?
ここに私のBeanからの割り当てクラスがあります:
package com.logickey.gradebook;
import java.io.Serializable;
import java.util.Vector;
public class Assignment implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1500382996574385949L;
private String Name;
private String Teacher;
private String AssignNum;
private String AssignDate;
private Vector<String> Scores;
public Assignment() {
Name = "";
Teacher = "";
AssignNum = "";
AssignDate = "";
Scores = new Vector<String>();
}
public Assignment(String name, String teacher, String assignNum, String assignDate, Vector<String> scores){
Name = name;
Teacher = teacher;
AssignNum = assignNum;
AssignDate = assignDate;
Scores = scores;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getTeacher() {
return Teacher;
}
public void setTeacher(String teacher) {
Teacher = teacher;
}
public String getAssignNum() {
return AssignNum;
}
public void setAssignNum(String assignNum) {
AssignNum = assignNum;
}
public String getAssignDate() {
return AssignDate;
}
public void setAssignDate(String assignDate) {
AssignDate = assignDate;
}
public Vector<String> getScores() {
return Scores;
}
public void addScore(String input) {
if (Scores==null) {
Scores = new Vector<String>();
}
Scores.add(input);
}
}