背景:在利用easyui做分页查询的时候,需要先在pageBean中封装一个离线查询对象,DetachedCriteria,用于封装页面可能传递过来的条件.
在baseAction中进行初始化的时候,设置为null,然后封装到pagebean中,但是在封装的时候写成了下面的形式,没有再赋值给离线查询对象.,所以导致后期在获取的时候获取的是null.
//错误代码(正确的应该写成 detachedCriteria = detachedCriteria.forClass(entityClass); )
detachedCriteria.forClass(entityClass);
pageBean.setDetachedCriteria(detachedCriteria);
public Class<T> entityClass;
DetachedCriteria detachedCriteria = null;
//子类实例化化时会调用父类的无参构造函数
public BaseAction() {
ParameterizedType Superclass = (ParameterizedType) this.getClass().getGenericSuperclass();
Type[] Arguments = Superclass.getActualTypeArguments();
entityClass = (Class<T>) Arguments[0];
//正确的代码
detachedCriteria = detachedCriteria.forClass(entityClass);
pageBean.setDetachedCriteria(detachedCriteria);
try {
model = entityClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
//总条数
DetachedCriteria dc = pageBean.getDetachedCriteria(); //这里开始是获取的时候始终为null,导致程序出错
dc.setProjection(Projections.rowCount());
本文探讨了使用EasyUI进行分页查询时遇到的一个常见错误:在初始化DetachedCriteria对象时未正确赋值,导致后续操作中该对象始终为null,从而引发程序错误。文章详细分析了错误代码,并提供了正确的实现方式。
1347

被折叠的 条评论
为什么被折叠?



