java.lang.IndexOutOfBoundsException:
com.accp.action.DossierAction.execute(DossierAction.java:24)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) 展开
该异常通常是指数组下标越界异常。
例如:一个ArrayList数组中没有元素,而你想获取第一个元素,运行是就会报此类型的错误。
案例如下:
扩展资料:
java中还有其他几种常见异常
1、java.lang.NullPointerException
该异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。
2、java.lang.ClassNotFoundException
该异常的解释是“指定的类不存在”,这里主要考虑一下类的名称和路径是否正确即可,如果是在eclipse等开发工具下做的程序包,一般都是默认加上Package的,所以转到WTK下后要注意把Package的路径加上。
3、java.lang.ArithmeticException
该异常的解释是“数学运算异常”,比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,要检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥。
4、java.lang.ArrayIndexOutOfBoundsException
该异常的解释是“数组下标越界”,现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围。
5、java.lang.IllegalArgumentException
该异常的解释是“方法的参数错误”,很多J2ME的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常。
6、java.sql.SQLException
该异常的解释是“Sql语句执行异常”,由数据库管理系统抛出至服务器,应检查sql语句是否书写正确等。
参考资料:jdk9官方文档-Exception类
ActionContext.getContext().put("dossierList", dossierList);
System.out.println(dossierList.get(0));
你的问题是数组越界了,也就是你所取的list中可能是完全没有数据,问题应该在这句
List<Dossier> dossierList=dossierBiz.listDossier();
这里你就没有获取到数据,所以下面的dossierList.get(0)就出问题了。
你应该在debug下查看listDossier是否也有值。
看你下面的代码return this.getHibernateTemplate().findByCriteria(criteria);
就知道你应该检查一下你的findByCriteria方法,该方法的返回的时候可能就已经出问题了,你应该在debug下一步一步的往上追踪看是到哪一步开始没有取到数据,以后上班后在debug下调试找问题是十分重要的!
List dossierList=dossierBiz.listDossier();
ActionContext.getContext().put("dossierList", dossierList);
System.out.println(dossierList.get(0));
这样也可以越界?
是不是 dossierList 里根本就没有数据呢,设个断点看看哈