随笔-26  评论-44  文章-20  trackbacks-0
  2008年8月12日
爱情是相知相交的默契,还是好奇加视觉冲击的新鲜感,是平等相待,还是占有和被保护。漫长的人生该和什么样的人渡过,离婚争吵难道无法避免?为什么对异性只是观看美丽,却无法去欣赏崇拜。如果不留心观察,只是流于表面,又怎么能找到另一半。我们沾染太多世俗,俨然社会的傀儡,怎么才能逃离社会阴暗的一面,追寻爱情抑或人生的归宿,只有留心观察,认真思考,不流于表面。
posted @ 2009-08-02 19:07 开机 阅读(181) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2008-11-10 21:45 开机 阅读(1757) | 评论 (1)编辑 收藏
在以前religionMIS基础(见我的随笔:extjs做的信息管理系统)上加的sping bean,同时删除的几个类。

代码:http://www.blogjava.net/Files/yijia/(%E5%8E%9F%E5%88%9B)spring_religionMIS.rar

spring包:http://www.blogjava.net/Files/yijia/spring.rar
解压后的spring.jar放到web-info/lib下即可。

数据库文件:http://www.blogjava.net/Files/yijia/reliongionmis 20080829 1731.rar
是mysql做的。

刚开始进系统的时候有点小问题,没数据显示,按一下里面的按钮,如添加,之后就能显示数据了。各个功能就正常的。以前没这个毛病,加了spring 后就这样的,也许是以前每次都创建新实例没问题,现在在spring容器配置后 单实例引起的问题,。总体来说,比以前好的不少。

posted @ 2008-11-06 13:32 开机 阅读(1330) | 评论 (0)编辑 收藏
public class Table {
    String tableName;
    String mainPropertyName;
    static int count=1;
    static DBExcute dbExcute=(DBExcute)new ClassPathXmlApplicationContext("applicationContext.xml").getBean("dbExcute");
   
    Table(String tableName,String mainPropertyName){
        this.tableName=tableName;
        this.mainPropertyName=mainPropertyName;
        System.out.println("construct table"+(count++)+" use:"+dbExcute);
    }
        .............
        .............
     public static void main(String []dsf){
     new Table("user","1");
  }
}

如上只new Table(..)一次:
结果却是:
construct table1 use:null
construct table2 use:null
construct table3 use:null
construct table4 use:null
construct table5 use:null
construct table6 use:com.yijia_ctgu.DB.DBExcute@535b58


奇怪中。。。。。。。


明白了,spring容器初始化的时候,初始化dbDAO bean会生成五个table,可能是先初始化,后才赋值给dbExcute,所以刚开始的五个都是null.

posted @ 2008-11-05 14:45 开机 阅读(257) | 评论 (1)编辑 收藏
我在普通类的main方法中调用bean:
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
for(int i=1;i<5;i++){
          DB dbDAO = (DB)factory.getBean("dbDAO");
          System.out.println(dbDAO);
      }
每次执行程序(不停的调用main方法,不只是只看一次循环!)都是相同的引用:
com.yijia_ctgu.DB.DB@12a54f9
com.yijia_ctgu.DB.DB@12a54f9
com.yijia_ctgu.DB.DB@12a54f9
com.yijia_ctgu.DB.DB@12a54f9


但是在servlet中使用时:
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
 dbDAO = (DB)factory.getBean("dbDAO");
每次操作创建的都是不同的引用:
如com.yijia_ctgu.DB.DB@16e1782
  com.yijia_ctgu.DB.DB@19be6ee

为何会是这样,是不是servlet每次都会重新生成spring容器?是servlet获取bean的方式有问题吗?还是servlet根本不可能每次使用相同的bean.

我懂了,必须用别的方式:先在web.xml中定义applicatincontext的位置,再用WebApplicationContextUtils获取ApplicationContext,在用它获取bean,这样就每次就是同样的bean了。

但是错误还是在继续,spring我没系统的学,所以总是有太多的问题。

posted @ 2008-11-05 10:34 开机 阅读(345) | 评论 (0)编辑 收藏
在web.xml中配置spring的contextconfigloaction时,总是定位不到src/applicationContext.xml或者
/src/applicationContext.xml(也许是我不懂父目录当前目录之类的)。算了,直接删除这个context-param,把applicationContext.xml文件复制到web-info下面,反正spring默认的就是那里。
要是刚开始myeclipse自动生成的applicationContext.xml文件的位置就在web-info下就不什么事都没了,不知道把它放到src有什么意图?

我晕啊,后来,程序还要到src下找applicationContext.xml文件,web-info下的也不能删,无语了。

我发布到tomcat的时候,是以WebRoot为根目录的,即tomcat的server.xml中是这样配置的:
<Context path="" docBase="D:\spring_religionMIS\WebRoot"/>
这也许就是定位不到src/..的原因吧,因为程序总是从WebRoot往下找,当然找不到,我又用../src/applicationContext.xml定位也找不到,不知错在哪里?
posted @ 2008-11-04 17:27 开机 阅读(2167) | 评论 (2)编辑 收藏
MyEclipse中,在加spring时,开始只加了spring-core,spring-aop。后来想加spring-web上去,除了直接复制粘贴包上去,还有没有更好的方法?
posted @ 2008-11-03 21:27 开机 阅读(208) | 评论 (0)编辑 收藏
  搞了半天,只要在myeclispe中打开tomcat就行了。
  我刚刚都是在外部用tomcat自带的monitor打开的,以前没注意到,写在这里提醒自己,希望对出现类似状况的同志有点帮助。
posted @ 2008-11-03 15:16 开机 阅读(728) | 评论 (0)编辑 收藏
我用easyjweb project命令快速生成的工程后,在src/main/java下建了一个包com.easyjweb.action在包下面写了个HelloAction,但是运行时出错,说frameworkException: 没有找到处理模板的类:com.easyjweb.action.HelloAction,我在web-inf的classes目录里看了没编译后的文件。我是用easyjweb project命令快速生成的工程,为什么eclipse没编译对应的java文件呢?

我自己手工新建的工程,添加对应的类,写好web.xml,可以运行程序。

我又用easyjweb project ... -ejs命令试了试,写了Java源文件后,发现classes目录有了编译后的文件,可是这样生产的工程师EasyJweb+JPA+spring结构的。我只是要个简单的应用,用easyjweb project ..又试了几次,还是不能编译对应的Java文件。哎,我也不知道问题出在哪里?我想这样一个成名的框架一定不会有问题了。哪位熟悉此框架的大哥,能不能帮忙解答一下。
posted @ 2008-08-30 18:12 开机 阅读(375) | 评论 (1)编辑 收藏
  extjs做的信息管理系统,由于业务简单,操作数据库的API用自己写的(我以前的 自己做试卷管理系统 系列中 提到),简单实用。在显示打印页面的时候,用到的servlet FormFilter,原因是数据在网络间传输时原先在数据库中的顺序打乱了,在这个servlet中用数组给它重新排列打印页面上数据的顺序。
  程序尽量用只用一个方法完成所有grid中一类类似的功能,用一个servlet完成所有一类类似的操作,用一个jsp显示所有要打印的页面。

代码下载:http://www.blogjava.net/Files/yijia/religionMIS.rar
数据库脚本在代码根目录下。
  开发环境:Eclipse3.2,mysql5.0,
          eclispe开发环境中所有文件的编码都设置为utf-8。修改mysql的配置文件,使其默认编码为utf-8(方法在网上可以搜到)或者用MySQL Administrator图形工具也可设置。
  浏览器:firefox。我用的是firefox3,不知道firefox2可不可以。但在ie中运行不了,我已经试过了。
  还有什么问题,跟我留言,我非常乐意与大家交流,这是我暑假学extjs做的,算作练习。

补充:编辑是自动编辑,在grid输入框编辑完后,监听事件负责主动把编辑的结果上传到数据库。添加按钮也是,点击添加后,新纪录在grid上显示的同时也插入到数据库。删除可选中多行后删除。up按钮用的是ext.ux.uploaddialog上传组件。打印页面是用jsp显示,原先还是想用extjs实现,一来觉得复杂,二来不知道怎么打印ext窗口,就放弃了。

posted @ 2008-08-29 17:56 开机 阅读(6551) | 评论 (9)编辑 收藏
  做试卷管理系统的时候,写了一个操作数据库的工具,它与数据库的具体的表,属性都无关:Tabel t=DB.getTabel("user")后可以操作相应的数据表,只要这个名为user的表存在,t.search(property[][],start,limit)传入一个属性数组,property比如可以为{{"username","admin"},{"password","admin"}....},然后数据库就可以在user表中查找username="admin"....的记录,start,limit是查找起始点和数目限制,js分页时用到。
  这样一来,servlet也可以和具体的表,属性无关,只和几个通用属性有关,如tableName,id(主键也可以为别的,在config.properties中配置),start,limit等等和具体数据库无关的。奇妙就在这里:不管数据库有多少张表,对于与每一个操作,servlet只有一个,如Edit,而不需要EditUser,EditPaper....等等很多edit了。同样以后系统怎样扩展,怎样增加表,表的属性怎样变化。servlet都可以不变,他只是操作相应的数据。那么具体的业务操作呢?
  js为这些带来了可能,它与返回的数据交互操作,和在服务器没有两样,为servlet省去了麻烦。
  以上是我个人感想,仅供参考。
  操作数据库的工具和写的servlet参见 自己动手做试卷管理系统的几篇随笔。js不好意思公开了,这是给别人做的小项目。

posted @ 2008-08-12 08:32 开机 阅读(1670) | 评论 (7)编辑 收藏