MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

遇到一个需求,需要根据当前页面的状态动态设置定义在input上的my97日期控件的onfocus事件是否启用。几经周折,才搞定。
对于已经写在input上的onfocus事件:
<input type="text" name="finishtime" id="finishtime"  readonly="readonly"
 onfocus
=WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd HH:mm'}) class="Wdate">
我用jquery的unbind函数死活都解决不了。
最后只能用IE的detachEvent来解决,而用这个detachEvent又有两个要注意的:
(1)detachEvent的事件必须是先前attachEvent的。
(2)函数不能带参数,故用了个自定义的无参的my97dp函数来中转。
真是搞不懂,又不能专门花时间来把js事件机制搞得很清楚。
代码如下:
 <script>
 
function my97dp(){
 WdatePicker({skin:'whyGreen',dateFmt:'yyyy
-MM-dd HH:mm'});
 }
 jQuery(
function(){
jQuery('#finishtime').get(
0).attachEvent('onfocus',my97dp);
 
var status='${obj.status}';
 
if(status=='2'||status=='3'){
 
var t=jQuery('#finishtime').addClass('readonly')
 .attr('readonly',
true).removeClass('Wdate').get(0);
 t.detachEvent('onfocus',my97dp);
 }
 });
 
</script>
 
<input type="text" name="finishtime" id="finishtime" readonly="readonly" class="Wdate">

posted @ 2008-11-04 18:27 leekiang 阅读(2711) | 评论 (1)编辑 收藏

又叫软件形态管理。它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。主要包括版本控制、变更控制、过程支持。这方面最出名的工具是clearcase

posted @ 2008-11-02 00:36 leekiang 阅读(341) | 评论 (0)编辑 收藏

1,Ideogramic UML
  可用白板涂鸦的方式画UML,还不错。可惜不支持中文。收费。
  试用key:2oBPw-TrCRG-9FWGz-TC7Rx-Zq

2, staruml
http://www.blogjava.net/daozhanga/archive/2009/03/28/262532.html

posted @ 2008-11-01 23:53 leekiang 阅读(263) | 评论 (0)编辑 收藏

问题:
假定,Parent类有一个Set属性,里面放的是Son。如果查询"from Parent",某个Parent哪怕一个Son都没有,那个Set属性不会为null,而是一个空集合。
这时候如果你Parent newP=new Parent();然后BeanUtils.copyPropertis(newP,origP);最后就会报hibernate异常"Found shared references to a collection"。
注:hibernate在什么时机发现"两个对象共享一个集合"的情况的?我这边的例子是在下一次查询时发现的。

原因:
BeanUtils.copyPropertis是浅拷贝,导致这两个对象引用的Set是同一个Set,这在hibernate中是不允许的,参见Hibernate reference第6章的"Two entities may not share a reference to the same collection instance"。
这种问题常见于复制对象时。
如何解决:newP.setSonSet(null);
还有人说原因可能是并发操作:http://www.blogjava.net/fastzch/archive/2006/12/22/89520.html

参考:
http://markmail.org/message/fszouomkeicjynw2
http://blog.csdn.net/programeyonger/archive/2008/01/31/2075304.aspx
http://www.javaeye.com/topic/99505

posted @ 2008-10-31 22:11 leekiang 阅读(7580) | 评论 (2)编辑 收藏

1, BeanUtils.copyProperties(dest, orig);          这种copy是浅拷贝,复制后的2个Bean的同一个属性可能拥有同一个对象的ref,这个在使用时要小心,特别是对于属性为自定义类的情况.还要属性为集合类的情况。小心hibernate的Set
2,BeanUtils.copyProperties与PropertyUtils.copyProperties的区别
  这两个类几乎有一摸一样的功能,唯一的区别是:BeanUtils在对Bean赋值是会进行类型转化。举例来说也就是在copyProperty时只要属性名相同,就算类型不同,BeanUtils也可以进行copy;而PropertyBean则可能会报错。当然2个Bean之间的同名属性的类型必须是可以转化的,否则用BeanUtils一样会报错。          若实现了org.apache.commons.beanutils.Converter接口则可以自定义类型之间的转化。

BeanUtils外还有一个名为PropertyUtils的工具类,它也提供copyProperties()方法,作用与BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而前者不支持这个功能,但是速度会更快一些
http://xiaozhao-521.javaeye.com/blog/244254
注意:有人说BeanUtils支持的转换类型不包括java.util.Date?
     我用1.6.1版本试了BeanUtils.copyProperties,肯定是支持java.util.Date的。
3,LazyDynaBean可以实现动态的vo。
  这样,有时候程序给view层的东西就可以用它来封装而不用专门建一个多余的vo类了。


参考:
http://jone0321.blogdriver.com/jone0321/615543.html
http://www.blogjava.net/kenzhh/archive/2008/09/03/226592.html

posted @ 2008-10-31 21:55 leekiang 阅读(1977) | 评论 (1)编辑 收藏

1,sendRedirect
写法:response.sendRedirect();
服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求事先访问过的那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取,request.setAttribute的内容没有了
2,include
会同时包含本页面和include页面的内容,地址栏不变。
 request.setAttribute的内容可以正常使用 。
servlet写法:request.getRequestDispatcher("jsp2.jsp").include(request,   response);  
jsp写法:<jsp:include page="include.jsp"/>

3,forward
页面会是forward的页面的内容,地址栏不变
request.setAttribute的内容,可以正常使用
servlet写法:request.getRequestDispatcher("jsp2.jsp").forward(request,   response);
jsp写法<jsp:forward page=
"include.jsp"/>

以上内容主要来自
图解sendRedirect,include,forward的区别
该文有形象的示意图,值得一看。

4,
<%@ include file="/bookshelf.jsp" %>和<jsp:include page="bookshelf.jsp" flush="true" />
是有区别的。前者主要用于静态内容,后者主要用于动态内容(flush='true'必加?)。
 如果要传递参数,只能利用后者的<jsp:param name="" value=""/>标记,不能直接放在url后面。
参考:JSP 最佳实践: 用 jsp:include 控制动态内容
<%@ page language="java" contentType="text/html" %>
<html>
<body>
<jsp:include page="header.jsp" flush="true">
<jsp:param name="pageTitle" value="newInstance.com"/>
<jsp:param name="pageSlogan" value=" " />
</jsp:include>
<%@ include file="/navigation.jsp" %>
<jsp:include page="bookshelf.jsp" flush="true" />
<jsp:include page="/mt-blogs/index.jsp" flush="true" />
<%@ include file="/footer.jsp" %>
</body>
</html>


posted @ 2008-10-31 15:10 leekiang 阅读(647) | 评论 (0)编辑 收藏

1,我觉得UML里最有用的是序列图.
   序列图按照时间次序,描述对象之间如何交互,以及交互时的消息。序列图是用例的精细化表达。一个用例可以细化为一个或多个序列图。
   用例有粒度之分,序列图也分粗细。



参考资料:
(1)用netbeans创建序列图的教程
   http://hi.baidu.com/woxxf/blog/item/6ba2f6efed129b12fdfa3c15.html
(2)http://hi.baidu.com/haoyan665/blog/item/61717e3f9b21d5ee54e723c6.html
(3)http://ieagle.javaeye.com/blog/104956
(4)UML 中各种图形的重要性排行
(5)在线画时序图:http://www.websequencediagrams.com。玩具。

posted @ 2008-10-30 21:51 leekiang 阅读(300) | 评论 (0)编辑 收藏

1,乐观锁
<class name="onlyfun.caterpillar.User"
table="user"
optimistic-lock="version">
<id name="id" column="id">
<generator class="native"/>
</id>
<version name="version" column="version" access="field"/>

http://caterpillar.onlyfun.net/Gossip/HibernateGossip/OptimisticLocking.html

posted @ 2008-10-30 21:33 leekiang 阅读(345) | 评论 (0)编辑 收藏

1,《编程珠玑:第2版》
2, Applying UML and Patterns
3,spring in Action 第二版
4,系统分析师UML实务手册
5, UNIX编程艺术
6,The Productive Programmer
7, 程序设计实践
8,《软件需求最佳实践:SERU过程框架原理与应用》
9,超越对手——软件项目经理的18种实用技能
10,GIS for Web应用开发之道
11,Ruby for Rails中文版
http://book.csdn.net/bookfiles/393/
12,西游记、设计模式与IBM WebSphere Portal应用开发
13,算法导论,简称CLR
14,大话设计模式
15,Ruby on Rails电子商务实战
16, Effective Java 第二版
17,Business Process Management with JBOSS JBPM: A Practical Guide for Business Analysts
18,OSworkflow: A Guide for Java Developers and Architects to Integrating Open-source Business Process Management
19,The C Programming Language (2nd Edition)  简称K&R
    http://djkings.javaeye.com/blog/233107
20,编译原理 技术与工具,第二版
    编译方面的最牛书,有人称之为龙书
21,计算机程序的构造和解释 ,第二版
    简称“SICP”,用Lisp描述
22,计算机程序设计艺术,简称TAOCP
23,《互联网单元测试及实践》
24,单元测试之道Java版——使用Junit
25,JUNIT RECIPES中文版--程序员实用测试技巧
26,junit in ation
27,理解专业程序员
28, 解析极限编程 --拥抱变化(第二版)
29,测试驱动开发 by Example
30,The Algorithm Design Manual 第二版
31, POJOs IN ACTION中文版:用轻量级框架开发企业应用
32, 领域驱动设计--软件核心复杂性应对之道
33,构建可扩展的web站点,
34,Web信息架构:设计大型网站
35, 数据仓库(原书第4版)
36, 电力企业信息化SOAA实践
37, Ajax高级程序设计
38, AJAX企业级开发
39, Ajax实战:实例详解(ajax in practice)
40, Pro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring Framework
41,EIP 企业集成模式
42,The Definitive Guide to SOA: Oracle® Service Bus, Second Edition
43,
系统分析师技术指南
44,《ERP——从内部集成起步》
45,设计模式与重构
46,设计模式解析(第2版)
47, 项目管理知识体系指南(PMBOK指南)(第四版)
48,系统分析与设计  Systems Analysis and Design in a Changing World
49,系统分析与设计方法(原书第7版)
50,持续集成:软件质量改进和风险降低之道
51,Java极限编程
52,Spring 攻略
53,java组件设计
54,物理学原理在工程技术中的应用
55,Java EE设计模式:Spring企业级开发最佳实践
56,设计模式之禅
57,金字塔原理
58,流血的仕途
59,大思想的神奇
60,思考致富

Test Driven: TDD and Acceptance TDD for Java Developers
Practical Liferay: Java–based Portal Applications Development (Pro)
Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Beginning from Novice to Professional)
Tapestry 5: Building Web Applications: A step-by-step guide to Java Web development with the developer-friendly Apache Tapestry framework

以下是一些新书
Practical Rails with jQuery Projects
Pro Spring Persistence with Hibernate
Pro Java EE Spring Patterns
Pro Spring 2.5
Grails in Action
Spring in Practice
Open-Source ESBs in Action
SOA in Practice: The Art of Distributed System Design
SOA for the Business Developer: Concepts, BPEL, and SCA
Service Oriented Architecture for Dummies
SOA Security
SOA Cookbook
Open Source SOA
SOA模式
SOA-based Enterprise Integration
Open-Source ESBs in Action
Enterprise Flexible Rails
Lucene in Action, Second Edition
JUnit in Action, Second Edition
The Art of Unit Testing
Collective Intelligence in Action
Data Structures and Problem Solving Using Java
Flexible Rails(已出版)
Implementing SOA: Total Architecture in Practice
Building SOA-Based Composite Applications Using NetBeans IDE 6
Practical Rails with jQuery Projects
Pro Spring Persistence with Hibernate

posted @ 2008-10-30 14:10 leekiang 阅读(742) | 评论 (2)编辑 收藏

1,Set里不允许重复,常用的:
  HashSet就不说了。
  TreeSet里的元素是排过序的。自定义的类的对象默认只能存放一个,如果想放多个并且有排序,则要实现Comparable接口并加上那3个方法。详见:TreeSet自定义排序

2, arraylist 底层是由数组组成的,在java中为了通用迭代器,所以性能上有一定的损失,用迭代器还不如for循环快.
   迭代器用在 底层由双向指针链表构成的linkedlist 上,效率大大高于for循环。
如 果使用for循环遍历 底层由双向指针链表构成的linkedlist的话,他会每次都从头遍历一次,知道获取你给定的下标,然后开始下一次遍历,。越往后速度越慢。下标越大, 速度越慢。但是对于迭代器,他不是根据下标完成的遍历,每取得一个对象后,他会根据这个对象的尾部指针取得下一个对象的内存位置,直接从内存位置取出内 容,这一点是for循环所不及的。

http://blog.csdn.net/java2000_net/archive/2009/01/16/3796064.aspx

3,
List要使用removeAll(Collection coll)
对象需实现equals()和hashCode()方法

4,用Collections.sort排序时可以把Comparator接口作为第二个参数
Collections.sort(stuGrade_List, new Comparator() {
public int compare(Object o1, Object o2) {
double c1 = ((StuGrade) o1).getChinese(); //获得语文的成绩,是doubel型
double c2 = ((StuGrade) o2).getChinese();
  if(c1>c2){
return 1;
}                                     
else if(c1=c2){
return 0;
}
else return -1;
}
});



参考:
TreeMap的使用及注意事项

posted @ 2008-10-28 22:11 leekiang 阅读(218) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 29 30 31 32 33 34 35 36 37 下一页 Last