• 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());	
    	}
    

      

  • 相关阅读:
    [转]AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
    C#文档注释
    VS 单元测试项目,测试的时候运行按钮不可用
    获取泛型类的Type
    Sql 复习(4)
    Sql 复习(3)
    sqlserver的soundex
    sqlserver的trim
    Sql 复习(2)
    糟糕的设计
  • 原文地址:https://www.cnblogs.com/tazi/p/2759104.html
Copyright © 2020-2023  润新知