30 Java金币
          我做的是SSH  和ext.js框架下,根据输入的年份列出每个月的订单数,再根据输入的月份列出每一天的订单数。问题是:我只有年份查询的代码时完全没问题,但是加入月份查询的代码后当我在界面上输入年份如2014时没有反应,必须要再输入月份后才会有反应????????  
 
        //订单数按年份、月份查询       
        public Page findContractCount(Map paramMap) throws ParseException { 
 
                     //属性等省略  
 
      if(paramMap.get("yearStr")!=null){  
                            yearStr = ((String[]) paramMap.get("yearStr"))[0];  
                            System.out.println(yearStr+"取出前端输入的yearStr");  
                            try {  
                                        if(!yearStr.equals(""))  
                                                year=sdf.parse(yearStr);          
                                } catch (ParseException e) {  
                                        e.printStackTrace();  
                                }  
                }  
                        else yearStr=null;  
                        System.out.println("Date格式"+year);           
 
 
                        if(paramMap.get("monthStr")!=null ){  
                                monthStr = ((String[]) paramMap.get("monthStr"))[0];  
                            System.out.println(monthStr+"取出前端输入的monthStr");  
                            try {  
                                        if(!monthStr.equals(""))  
                                                month=sdf.parse(monthStr);           
 
                                } catch (ParseException e) {  
                                        e.printStackTrace();  
                                }  
                        }  
                        else  monthStr=null;  
                        System.out.println("Date格式"+month);    
 
 
                        calendar.setTime(year);                  
                        int yearInt=Integer.parseInt(yearStr); 
                        int monthInt=Integer.parseInt(monthStr); 
  
         //统计有效订单数,ordDate.contractCreateDate为订单的创建日期 
      Query query=getSession().createQuery("select count(*)  from OrdInfo where ordDate.contractCreateDate  between ? and ? "); 
            if(year!=null&&month==null){ 
                                         calendar.set(yearInt,0,0,0,0,0);        //yearInt年1月0日 
                                         for(int i=0;i<12;i++){ 
                                                        System.out.println("第"+(i+1)+"个月"); 
                                                        calendar.add(DATE,1); 
                                                        Date timeStart=calendar.getTime();     //查询的开始时间 
                                                        calendar.add(MONTH,1); 
                                                        calendar.add(DATE,-1); 
                                                        Date timeEnd =calendar.getTime();     //查询的截止时间 
 
 
                                                        query.setDate(0,timeStart).setDate(1,timeEnd);   
                                                  
                                                         HashMap map=new  HashMap(); 
                                                          
                                                         map.put("orderCount",query.uniqueResult());                //ordCount表示订单数 
                                                          
                                                        list.add(map);                          
                                          
                                } 
                        } 
                         if(year!=null&&month!=null){ 
                                            //下面这段代码设置该月的天数 
                                                        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM"); 
                                                          SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd"); 
                                                          Calendar cal = Calendar.getInstance(); 
                                                           
                                                        String abc = yearInt+"/"+monthInt; 
                                                          System.out.println(abc+"这是输出几年几月"); 
                                                          Date d =sdf1.parse(abc); 
                                                          
                                                               
                                                          cal.setTimeInMillis(d.getTime());                //用给定的Date值设置此 Calendar 的当前时间值。 
                                                          cal.add(cal.MONTH, 1); 
                                                          cal.add(cal.DATE, -1); 
                                                          Integer cc= Integer.parseInt(sdf2.format(cal.getTime()).substring(6, 8)); 
                                                          System.out.println(cc+"该月有多少天"); 
                                                //上面这部分代码是算该月的天数         
                                                                  
                                                            calendar.set(yearInt,monthInt+1,1,0,0,0);         //yearInt年monthInt月1日 
                                                             
                                                            for(int i=0;i<cc;i++){ 
                                                                        System.out.println((i+1)+"日"); 
                                                                        calendar.add(DATE,0);                                //yearInt年monthInt月1日 
                                                                        Date timeStart=calendar.getTime();          //查询开始时间 
                                                                          
                                                                        calendar.add(DATE,1);                                //yearInt年monthInt月2日 
                                                                        Date timeEnd =calendar.getTime();            //查询的截止时间 
                                                         
                                                      query.setDate(0,timeStart).setDate(1,timeEnd);   
                                                  
                                                         HashMap map=new  HashMap(); 
                                                          
                                                         map.put("orderCount",query.uniqueResult());                //ordCount表示订单数 
                                                          
                                                        list.add(map);                                  
                                                          
                                                                } 
                                } 
                         
                         
                  
                           page.setRoot(list);   
                           System.out.println(page.getRoot().toString()); 
                          
                           return page;   
 
 
} 
} 
 
                         
  
 
我来回答