数値のみ、つまり1〜5を受け入れる必要があるテキストフィールド配列があります。
<s:textfield name="marks[0]" maxlength="1" />
<s:textfield name="marks[1]" maxlength="1" />
<s:textfield name="marks[2]" maxlength="1" /> and so on upto 9 textfields.
次のように、これのためのゲッター/セッターメソッドがあります
public List<Integer> getMarks(){
return marks;
}
public void setMarks(List<Integer> marks){
this.marks = marks;
}
ユーザーがアルファベットなどの数値以外の値を入力しないようにするにはどうすればよいですか? 文字を入力すると、実行時例外「java.lang.ClassCastException: java.lang.String を java.lang.Integer にキャストできません」がスローされ、次の JSp ページの検証メソッドを指します。
public void validate(){
for(i=0;i<9;i++){
if (marks.get(i)>5) //this line throws above ClassCastException
addFieldError("...");
}
}
この例外と続行するための検証を解決するにはどうすればよいですか? 単一のテキストフィールドがある他のページでは、invalid.fieldvalue.error が表示されますが、リストでは例外を超えています