这是我的validation.java文件...... 当我上传数据并保存时,我收到应用程序错误,如 numberFormatException ......
if(form.getNoOfStudents()!=null)
{
CEBean ceBean=new CEBean();
ceBean.put("schedulerBean", form);
Integer count=questionsBO.getStudentList(ceBean);
if(count<Integer.parseInt(form.getNoOfStudents()))
{
e.reject("errors.availableStudents", new Object[] { count }, null);
}
}
答案 0 :(得分:1)
你form.getNoOfStudents()返回一些字符串... Integer.parseInt()方法尝试将此String解析为Integer。此方法可能抛出扩展RuntimeException的NumberFormatException。
因此,您可以在form.getNoOfStudents()中进行更改,以返回可以整数转换的有效String。或者你可以尝试捕捉这样的异常
int parseResult = 0;
try
{
parseResult = Integer.parseInt(form.getNoOfStudents());
}
catch (NumberFormatException e)
{
e.printStackTrace(); // just show exception text, don't interrupt program
}
// now if form.getNoOfStudents() was incorrect string which can't be converted to int
// parse result will be 0 and message in console, else if no errors it will contain
// valid parsed value
if(count<parseResult)
{
e.reject("errors.availableStudents", new Object[] { count }, null);
}
答案 1 :(得分:0)
在您尝试解析的数字中,可能有一些空格或看不见的字符(如\n \t
)。
尝试使用org.apache.commons.lang.StringUtils.strip(form.getNoOfStudents())
转换为整数之前。