获取numberFormatExcetion添加数据时验证器出错

时间:2013-12-03 07:15:07

标签: java xml spring

这是我的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);

       }
}

2 个答案:

答案 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())转换为整数之前。