struts2页面取后台list报错:could not be resolved as a collection/array/地图/enumeration/i

struts2页面取后台list报错:could not be resolved as a collection/array/map/enumeration/i
struts2页面取后台list报错:
could not be resolved as a collection/array/map/enumeration/iterator type


原因很简单。在第一次提交了form页面后,当基本ajax或struts2本身的验证未通过时,通常会跳转至原来的form提交页面;而第二次进入该form提交页面时,该页面中select等域中使用的后台list并没有被初始化,故而报错。

在验证未通过,跳转至的action方法中重新取一下list也是个解决的办法;但下面的解决办法应该更好:
http://jackflysky.iteye.com/blog/655386
引用
解决办法是把初始化list的工作放到prepare拦截器中,因为prepare是在validate拦截器之前执行,即实现prepareble接口:
public class RoleAction extends ActionSupport implements Preparable{ 
     @Override public void prepare() throws Exception { 
          //初始化list
     } 
}