extjs 查询条件和列表

1. ext中日期框直接使用getValue()提交给Struts2的Action时,Struts会自动把日期值填充到日期变量中(java.util.Date).

使用Hibernate的DetachedCriteria查询记录时,可以直接使用诸如

criteria.add(Restrictions.gt("startTime",startTime)); //startTime为java.util.Date对象

来进行日期对象的比较。注:当前数据库环境为oracle10g.

2.前台每一个查询表单域的name设置为列表对象的属性名。提交时代码如下:

var queryForm=Ext.getCmp(formId);					
Ext.apply(store.baseParams,queryForm.form.getFieldValues()); //获得当前分页条的设置大小 var pageSize=Ext.getCmp(gridId).getBottomToolbar().pageSize; store.load({ params:{ start:0, limit:pageSize } });

3.Struts中的Action  implements ModelDriven<MyClass> ,生成DetachedCriteria对象的方法如下:

 private DetachedCriteria getCriteria(MyClass example){
    	DetachedCriteria criteria=DetachedCriteria.forClass(MyClass .class);
    	if(example!=null){ 		
			if(!isNull(example.getCalledUser()))  
				criteria.add(Restrictions.like("calledUser",example.getCalledUser(),MatchMode.ANYWHERE));
			if(!isNull(example.getType())){
				criteria.add(Restrictions.eq("type", example.getType()));
			}
			if(!isNull(example.getStatus())){
				criteria.add(Restrictions.eq("status", example.getStatus()));
			}
			if(!isNull(example.getStartTime())){
				criteria.add(Restrictions.gt("startTime",example.getStartTime()));
			}
			if(!isNull(example.getEndTime())){
				criteria.add(Restrictions.lt("endTime",example.getEndTime()));
			}
    	}
    	return criteria;
    }

然后根据criteria生成列表:

	public List getMyClassList(MyClass example, Integer start, Integer limit){
		DetachedCriteria criteria=getCriteria(example);
    	criteria.addOrder(Order.asc("id")); //id为MyClass的一个属性
		List list; 
    	if(limit!=-1)
			list=getHibernateTemplate().findByCriteria(criteria, start, limit);
		else 
			list=getHibernateTemplate().findByCriteria(criteria);
    	
		return list;	
	}

求总记录数的方法如下:

	public int getCounts(MyClass example) {
		Session session=getSessionFactory().getCurrentSession();
		DetachedCriteria dc=getCriteria(example);
		dc.setProjection(Projections.rowCount());
		Criteria crit=dc.getExecutableCriteria(session);
		return Integer.parseInt(crit.uniqueResult().toString());	
	}

  

posted @ 2012-11-07 16:48  tazi  阅读(1823)  评论(0编辑  收藏  举报