leisure

JAVA - exceed,helloworld
随笔 - 50, 文章 - 0, 评论 - 11, 引用 - 0
数据加载中……

2012年1月25日

flash调用javascript

flash.external.ExternalInterface.call("pop")

posted @ 2013-01-11 10:34 leisure 阅读(516) | 评论 (0)编辑 收藏

spring2 JNDI

      <bean id= "myjndi" class= "org.springframework.jndi.JndiObjectFactoryBean" >
             <property name ="jndiName" value= "java:comp/env/jdbc/myjndi" />
      </bean >

posted @ 2013-01-11 10:33 leisure 阅读(507) | 评论 (0)编辑 收藏

两个div在同一行

<style>
.b,.c{float:left; margin-right:10px;}
</style>
<div class="a">
  <div class="b">
      test
  </div>
  <div class="c">
       testc
  </div>
</div>

posted @ 2013-01-11 10:32 leisure 阅读(927) | 评论 (0)编辑 收藏

Javascriptz格式化数字

<script>
    
/*** 格式化数字显示方式
        * 用法
        * formatNumber(12345.999,'#,##0.00');
        * formatNumber(12345.999,'#,##0.##');
        * formatNumber(123,'000000');
        * @param num* @param pattern
    
*/
    
function formatNumber(num,pattern){
        num 
= Number(num);
        
var strarr = num?num.toString().split('.'):['0'];
        
var fmtarr = pattern?pattern.split('.'):[''];
        
var retstr='';    // 整数部分
        var str = strarr[0];
        
var fmt = fmtarr[0];
        
var i = str.length-1;
        
var comma = false;
        
for(var f=fmt.length-1;f>=0;f--){
            
switch(fmt.substr(f,1)) {
                
case '#':
                    
if(i>=0 ) retstr = str.substr(i--,1+ retstr;
                    
break;
                
case '0':
                    
if(i>=0) retstr = str.substr(i--,1+ retstr;else retstr = '0+ retstr;
                    
break;
                
case ',':
                    comma 
= true;
                    retstr
=','+retstr;
                    
break;
            }
        }
        
if(i>=0){
            
if(comma){
                
var l = str.length;
                
for(;i>=0;i--){
                    retstr 
= str.substr(i,1+ retstr;
                    
if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;
                }
            } 
else 
                retstr 
= str.substr(0,i+1+ retstr;
        }
            retstr 
= retstr+'.';// 处理小数部分
            str=strarr.length>1?strarr[1]:'';
            fmt
=fmtarr.length>1?fmtarr[1]:'';
            i
=0;
            
for(var f=0;f<fmt.length;f++){
                
switch(fmt.substr(f,1)){
                    
case '#':
                        
if(i<str.length) retstr+=str.substr(i++,1);
                        
break;
                    
case '0':
                        
if(i<str.length) retstr+= str.substr(i++,1);
                        
else retstr+='0';
                        
break;
                    }
            } 
            
return retstr.replace(/^,+/,'').replace(/\.$/,'');
    }
    
    document.write(
"formatNumber('','')=" + formatNumber('',''));
    document.write(
"<br/>");
    document.write(
"formatNumber(123456789012.129,null)=" + formatNumber(123456789012.129,null));
    document.write(
"<br/>");
    document.write(
"formatNumber(null,null)=" + formatNumber(null,null));
    document.write(
"<br/>");
    document.write(
"formatNumber(123456789012.129,'#,##0.00')=" + formatNumber(123456789012.129,'#,##0.00'));
    document.write(
"<br/>");
    document.write(
"formatNumber(123456789012.129,'#,##0.##')=" + formatNumber(123456789012.129,'#,##0.##'));
    document.write(
"<br/>");
    document.write(
"formatNumber(123456789012.129,'#0.00')=" + formatNumber(123456789012.129,'#,##0.00'));
    document.write(
"<br/>");
    document.write(
"formatNumber(123456789012.129,'#0.##')=" + formatNumber(123456789012.129,'#,##0.##'));
    document.write(
"<br/>");
    document.write(
"formatNumber(12.129,'0.00')=" + formatNumber(12.129,'0.00'));
    document.write(
"<br/>");
    document.write(
"formatNumber(12.129,'0.##')=" + formatNumber(12.129,'0.##'));
    document.write(
"<br/>");
    document.write(
"formatNumber(12,'00000')=" + formatNumber(12,'00000'));document.write("<br/>");
    document.write(
"formatNumber(12,'#.##')=" + formatNumber(12,'#.##'));
    document.write(
"<br/>");
    document.write(
"formatNumber(12,'#.00')=" + formatNumber(12,'#.00'));
    document.write(
"<br/>");
    document.write(
"formatNumber(1080.0,'#.##')=" + formatNumber(1100.0,'#,###.##'));
    document.write(
"<br/>");
</script>

posted @ 2013-01-11 10:30 leisure 阅读(279) | 评论 (0)编辑 收藏

去掉eclipse的validate

困扰了好几天,与大家共享

1,在project名称上右键选择properties,打开属性窗口,选择左边的validation

2,勾选enable project specific setting;

3,点击Disable all,点击OK关闭窗口

4,在project名称上右键validate

备注:suspend all validators勾选没有效果,另外第4步很重要

posted @ 2013-01-11 10:20 leisure 阅读(7081) | 评论 (0)编辑 收藏

spring method interceptor

spring method interceptor

-author: leisure.xu

首先dao里面有find和save方法,本实例以拦截find方法为主,并改变find的返回值。

package com.leisure;

public class Dao {

     public String find() {

          System. out.println( "dao: find()");

          return "student";

     }

     public void save() {

          System. out.println( "dao: save()");

     }

}

一、新增一个DaoInterceptor,如下

package com.leisure;

import org.aopalliance.intercept.MethodInterceptor;

import org.aopalliance.intercept.MethodInvocation;

/**

 * class description goes here

 * @author leisure.xu

 * @version 1.0.0, 2012 -6 -29

 */

public class DaoInterceptor implements MethodInterceptor {

     @Override

     public Object invoke(MethodInvocation invocation) throws Throwable {

          String methodName = invocation.getMethod().getName();

          if( "find".equals(methodName)) {

               System. out.println( "invocation modify the return result to 'teacher'");

               return "teacher";

          }

          return invocation.proceed();

     } 

}

     DaoInterceptor实现了MethodInterceptor的invoke方法,在这里,MethodInvocation参数可以获取到getArguments等数据,至于能做什么,你懂的。

二、Dao跟DaoInterceptor还是没扯上关系,这时需要修改applicationContext.xml

     原来:

     <bean id = "dao" class= "com.leisure.Dao"/>

修改为:

          <!--

      <bean id=" dao" class="com.leiusre.Dao"/>

     -->

     <bean id ="daoInterceptor" class="com.leisure.DaoInterceptor"/>

     <bean id ="dao" class= "org.springframework.aop.framework.ProxyFactoryBean" >

          <property name ="target">

               <bean class ="com.leisure.Dao" />

          </property >

          <property name ="interceptorNames">

               <list >

                    <value >daoInterceptor </value >

               </list >

          </property >

     </bean >

三、运行看效果!

     ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml" );

     Dao dao = context.getBean(Dao. class);

     System. out.println(dao.find());

     dao.save();

结果:

invocation modify the return result to 'teacher'

teacher

dao: save()

从结果可以看出invocation拦截了find方法,并且修改了其返回结果,而对象的find方法并没有执行到。

该实例引用到的jar包:




posted @ 2012-07-11 09:14 leisure 阅读(990) | 评论 (0)编辑 收藏

spring2.0的jndi配置

<!--
 <jee:jndi-lookup id="application" jndi-name="java:comp/env/app-name"/>
    -->
改成
<bean id="application" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/app-name" />
</bean>

posted @ 2012-06-27 16:30 leisure 阅读(304) | 评论 (0)编辑 收藏

Caused by: java.lang.IllegalArgumentException: null source 解决

1 Caused by: java.lang.IllegalArgumentException: null source
2     at java.util.EventObject.<init>(EventObject.java:38)
3     at javax.sql.StatementEvent.<init>(StatementEvent.java:39)
4     at com.mysql.jdbc.jdbc2.optional.JDBC4PreparedStatementWrapper.close(JDBC4PreparedStatementWrapper.java:70)
5     at com.caucho.sql.UserStatement.close(UserStatement.java:163)
6     at com.caucho.sql.UserPreparedStatement.close(UserPreparedStatement.java:727)

开始使用的是:mysql-connector-java-5.1.6-bin
更换新的mysql驱动包就没问题了(mysql-connector-java-5.1.11-bin)

posted @ 2012-06-15 12:10 leisure 阅读(3359) | 评论 (0)编辑 收藏

redis五天亲密旅程

FIRST DAY
redis介绍、安装使用(win、linux)
redis数据类型
redis-twitter实例分析
驱动选材-Jedis
初探spring data - redis

SECOND DAY
项目架构搭建 spring + spring data redis + jedis
redisTemplate、jedis常用的API熟悉
spring data - redis源码解剖

THIRD DAY
redis数据库设计理念及应用场景分析
深入探究数据类型

FOURTH Day
 项目实战

FIFTH DAY
内存优化,设计优化
 分布式集群方案

posted @ 2012-04-12 10:10 leisure 阅读(523) | 评论 (0)编辑 收藏

游戏数据库上线拉

新应用,游戏数据库,为你提供详尽的游戏资料。


posted @ 2012-04-11 08:54 leisure 阅读(323) | 评论 (0)编辑 收藏

应用启动时,attempting to get SockIO from uninitialized pool!

在spring配置文件中,没有将实例名称对应上,导致mc client无法从一个未初始化的池里获取数据。

    <bean id="sockIOPool" class="com.danga.MemCached.SockIOPool"
        factory-method
="getInstance" init-method="initialize" destroy-method="shutDown"
        p:initConn
="${memcached.initConn}"
        p:minConn
="${memcached.minConn}"
        p:maxConn
="${memcached.maxConn}"
        p:maintSleep
="${memcached.maintSleep}"
        p:nagle
="${memcached.nagle}"
        p:socketTO
="${memcached.socketTO}"
        p:servers
="${memcached.servers}">
        <constructor-arg value="myName"/>
    </bean>
    
    <bean id="memCachedClient" class="com.danga.MemCached.MemCachedClient">
        <constructor-arg value="myName"/> 
        <property name="sanitizeKeys" value="false"/>
        <property name="compressEnable"   value="true"/>
        <property name="compressThreshold" value="1024"/>
    </bean>

注意<constructor-arg value="myName"/> 中的myName要保持一致。

posted @ 2012-02-17 14:44 leisure 阅读(3437) | 评论 (1)编辑 收藏

eclipse安装svn客户端

下载相应的插件版本
把解压的内容放置eclipse\dropins\svn\目录下(svn目录不存在则创建)
完成后,重启eclipse,重启完后,提示安装svn connector,选择一个安装即可,安装完后,再一次重启。
window - show view - other - svn 下即可以看到svn控制视图

posted @ 2012-01-25 10:59 leisure 阅读(304) | 评论 (0)编辑 收藏