工作中一些常用的功能

  1. 密码框中的密码可见与隐藏
     原理:准备2个input 框,当需要显示密码时 隐藏<input type="password" /> 
              显示<input type="text" />
  2. 关于poi 导出时设置选择保存地址  
    原理:利用流输出这样就可以使用系统的保存对话框
    
    // 第六步,将文件存到指定位置
        String filedisplay = building.getString("buildingName") + ".xls";
        filedisplay = URLEncoder.encode(filedisplay, "UTF-8");
        resp.addHeader("Content-Disposition", "attachment;filename=" + filedisplay);
        OutputStream fout = resp.getOutputStream();
        wb.write(fout);
        fout.close();
  3. 快速删除一张表的所有数据
        TRUNCATE TABLE  tablename
  4. jquery 的遍历
        $j("form[name=XXX]").find("input[name=XXX]").each(function() {
            this.value = "Y";
        });
        
        $.each( [0,1,2], function(i, n){
            alert( "Item #" + i + ": " + n );
        });
  5. 让图片相对于屏幕固定住,不随网页滚动而动,也就是使用 position:fixed
  6. 1.List
    Java代码
    boolean[] boolArray =newboolean[]{true,false,true};      
                JSONArray jsonArray1 = JSONArray.fromObject( boolArray );      
                System.out.println( jsonArray1 );      
               // prints [true,false,true]    
                  
                List list =newArrayList();      
                list.add("first");      
                list.add("second");      
                JSONArray jsonArray2 = JSONArray.fromObject( list );      
                System.out.println( jsonArray2 );      
               // prints ["first","second"]    
      
                JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']");      
                System.out.println( jsonArray3 );      
               // prints ["json","is","easy"]     
    
    2.Map
    Java代码
    Map map =newHashMap();      
              map.put("name","json");      
              map.put("bool", Boolean.TRUE );      
              map.put("int",newInteger(1) );      
              map.put("arr",newString[]{"a","b"} );      
              map.put("func","function(i){ return this.arr[i]; }");      
              JSONObject json = JSONObject.fromObject( map );      
              System.out.println( json ); 
        list, json 从另一个角度看就是一个Array  使用JSONArray 转换
        Map 就相当于一个对象(person{name:zhagnsan, age:23}) 使用JSONObject 转换
  7. Double类型的a和b做减法与c比较时容易出现的问题
        常理认为0.8-0.2=0.6 但是如果转换成double基本类型来做减法与一个数做比较时会不成立。
        string转成double,存储到计算机里面为64位8个字节的二进制为:0.8*2 = 1.6。 0.6为基数。
        此时1为二进制    0.6*2 = 1.2 , 0.2为基数, 1为二进制。 0.2*2=0.4 ,0.4为基数。 
        0为二进制。0.4*2=0.8, 0.8为基     数。 0为基数。 0.8*2 = 1.6 ,0.6为基数。 1为二进制。 
        二进制从左边开始写为: 0.11001。。。。以此类    推。 算到64位算不完的省略。
        然后再做计算时为,0*2^0.+0*2^-1+1*2^-2 ......所以0.8-0.2总会小于0.6
        二进制转十进制 101.1101 =  1*2^2+0*2^1+1*2^0+1*2^-1+1*2^-2+0*2^-3+1*2^-4 
        = 4+0+1+1/2+1/4+0+1    /16
        小数转二进制0.25 = 0.01   0 +1*2^-2   = 0.25
        整数转二进制 5 = 5/2  1   2/2 0  1/2  101
        如果遇到String类型浮点数做比较,建议使用BigDecimal或者用小于比较数0.000001
        (该值视精度而定)的浮点    来替代比较数。 比如:<0.599999
  8. javascript的Date构建方法中,月份值0表示1月
    var date = new Date(year, month, day); 其中,年就是4位年份数字;
    day就是指定月中的日数,从1开始计;而month,表示月份,从0开始计,范围是0~11。
  9. 单击和双击 往往双击时会触发单击事件 此方法可以避免:
        funcction OneClick(obj) {
             v_Result = false; 
             window.setTimeout(OneClick _Nei, 500) 
             function OneClick _Nei() {  
             if (v_Result != false) return; 
                 functionName(obj); 
             }
         }
        function TwoClick (obj) { 
            v_Result = true; 
            functionName(obj);
        }
  10. jquery 表单验证
    初始化:$(document).ready(function(){ $('#yourformid').validate();});
    判断是否通过验证: $('#yourformid').validate().form() return true or false
    或者: $('#yourformid').valid();
  11. 求一天的起始时间,如何避免时区对Timestamp类型值的影响
    下述代码求一天的其实时间是错误的:
        long ONE_DAY_MS = 24 * 60 * 60 * 1000; // 一天的毫秒数
        Timestamp dayTs = new Timestamp(
            (timeFromToProcess.getTime() / ONE_DAY_MS) * ONE_DAY_MS); 
    // dayTs: 一天起始时刻的Timestamp值
    原因是:有时区影响,GMT时间会转化为当地时间。
    e.g. 对于东8区,2013-12-25 03:10:00,转换为整小时是"2013-12-25 03:00:00",
    而使用同样的整除法转换为整天数,则为"2013-12-24 08:00:00",和预期“日”相差一天。
    正确的做法是使用字符串格式的时间("YYYY-MM-DD 00:00:00.000")进行转换:
        Timestamp hourTs = new Timestamp(
            (timeFromToProcess.getTime() / ONE_HOUR_MS) * ONE_HOUR_MS);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String startDayTimeFromStr = sdf.format(hourTs) + " 00:00:00.000";
        Timestamp dayTs = LabwayUtils.toTimestamp(startDayTimeFromStr); 
        // 此处dayTs使用UTC(GMT)时间替代,用以表示准确的“日”





你可能感兴趣的:(工作中一些常用的功能)