
Framework
_chage
这个作者很懒,什么都没留下…
展开
-
使用struts标签在JSP格式化输出日期型属性值
当bean中有datetime型的属性时,在网页上格式化输出,以前我是使用工具类的静态方法进行转换。现在发现了struts自已有更简单的处理办法,如下:1.在资源文件里添加如下键值(我使用IBM的工具RbManger,很好用的):global.formatDateTimeAll=yyyy年MM月dd日 HH:mm:ssglobal.formatDateTime=yyyy年MM月dd日 HH:m原创 2004-08-05 09:55:00 · 2950 阅读 · 0 评论 -
iBatis终于出了2.0.9,解决了N+1查询问题。
新年新气象,庆祝。待我试用。 作者给出的这个n+1 select解决方案,是针对一对多的,他认为一对一内联类属性的映射,通过视图select和lazyload,已经可以方便地解决,所以着重解决的是1:M / M:N的问题,我拿jpetstore中的表作为例子,如下: groupBy="categoryId"> resultMap="Category.productRe原创 2005-01-10 11:09:00 · 3817 阅读 · 2 评论 -
我的使用struts menu动态从数据库建树型菜单设计
关于struts-menu,中文资源只有蓝色天空网站站长的两篇文章广为传播,在此表示感谢。1.“源码分析”见http://champion.ewuxi.com/old/opensource/struts-new/strutsmenu.htm2.“ibatis+少量代码动态建树“见 http://www.ewuxi.cn/ithome/develop/deve_languagedata/20原创 2005-01-10 16:44:00 · 1948 阅读 · 0 评论 -
AppFuse 第一天
开始看appfuse,这个东东名声不小,展示了如何在项目中融合众多开源框架,着重在于使用 ant 和 xDoclet 快速构建一个应用,在代码生成、持续集成上着力。下了1.7版本,好大,19M,结果折腾了半个工作日,eclipse3.0.1的ant任务还是没有执行起来,一个build.xml文件达到了67k,晕,强人也。一般开发人员一个时间片段最多只能关注6-8个点,(大牛不好说了估计要乘以2原创 2005-01-26 21:04:00 · 1139 阅读 · 0 评论 -
pojo+xDoclet生成ibatis映射文件
XDoclet实现基本原理是,通过在Java代码加入特定的JavaDoc tag,从而为其添加特定的附加语义,之后通过XDoclet工具对代码中JavaDoc Tag进行分析,自动生成与代码对应的配置文件,在Ejb、hibernate、struts中使用得比较广泛了,ibatis比较草根,没有这个棉袄穿,怎么办呢,大过年的,为了让ibatis也有新衣服穿,我只好弄一个了。如果你不了原创 2005-01-31 17:11:00 · 2494 阅读 · 1 评论 -
学习appfuse,用xdoclet代码生成
今天继续摆弄ant+xdoclet,颇上瘾,眼下实践成功根据pojo自动生成对应的以下9种东东:1. ibatis的sqlmap配置文件(已在上一篇blog中详尽介绍)2.dao接口3.dao的junit测试类4.dao的ibatis impl类5.struts ActionForm类6.用于新增或修改的jsp页7.struts acion类8.service接口9.service的impl类,用原创 2005-02-01 13:42:00 · 1981 阅读 · 0 评论 -
Acegi 的扩展
年刚过,还很懒,这个东东年前都开始关注了,今天把学习成果总结一下。 Acegi,一个安全系统,拦截器和面向接口的编程方式,支持ACL、JAAS基于Spring.我的理解其价值在于:replace Container-Managed Authentication,将安全这一块脱离具体j2ee容器,将来需要迁移时少一些麻烦,它足够强大,可以给web系统甚至cs应用提供足够的安全保护机制。原创 2005-02-18 11:05:00 · 3060 阅读 · 2 评论 -
acegi中的cache配置
通过读acegi的源码,更加体会到“基于接口”的设计给扩展带来巨大的灵活性。在bean配置中,有以下内容: 这个userCache,acegi给出了一个默认的EhCache的实现,如果你不设该属性,默认使用NullUserCache,用户登录后,每进入一个url,系统都会通过Dao访问一次数据库,来取得新的UserDetail,我自己的系统中持久层使用ibatis作映射原创 2005-02-25 14:23:00 · 1370 阅读 · 0 评论 -
思维导图 - j2ee团队开发规范、框架、培训
脑图工具为FreeMind 8.0,左侧的过程规范主要参照了敏捷方法中的诸多最佳实践,结合了我们的团队情况。1. 编码规范使用了CheckStyle的Eclipse插件,供程序员第一道检查,缩进等采用IDE自带的代码格式化命令。它自带的Sun checks异常严格,进行了大刀阔斧的裁减,直到本人不感到特别不适为止。这个新的规则xml文件也更新到maven的report-plugin中。2. 单元测原创 2005-06-20 19:18:00 · 3639 阅读 · 0 评论 -
一则spring中使用PropertyEditors 来注入日期型属性的技巧
如题。 yyyy-MM-dd false 1981-01-01原创 2005-03-09 20:25:00 · 2670 阅读 · 0 评论 -
继续acegi -> 0.8
新工作节奏较快,所以不太更新blog了。最近编写了iBaits code conventions以及junit best practice,很高兴团体可以按照敏捷和tdd的路子进步下去。有需要这两个东东的朋友可以发邮向我要。acegi出了0.8,改动还真不少,原先0.7的应用,改了一个多小时才完全升级成功。备忘一下:1 最贴心的改变莫过于 filter chains可以放在spring 容器中加载原创 2005-03-19 19:53:00 · 1716 阅读 · 5 评论 -
eXtremeTable -
http://www.extremecomponents.org/ 让我怀念起了以前delphi控件编程时代,在jsf还没有成熟之前,先拿这个预热吧,超级好用,半小时学会。扩展能力极强。排序、分页、国际化、动态列、日期货币输出格式、导出excel和pdf。让我如何不爱你? 更可贵的是,相比displayTag的一次数据读入来说,它在性能上不输于VauleList。表格&表单,两大b/s开发基本h原创 2005-08-30 15:58:00 · 1849 阅读 · 0 评论 -
七剑与java开源工具
随着前一段徐克《七剑》之热播,网上有很多针对世界足坛、NBA、超女的七剑总结帖。我也续上一下,针对我们j2ee的常用工具及framework,当然是open source的.这些工具都是我们开发的利器。莫问: 隐为群龙之首,背负前尘往事,是表示内涵和救赎的一把剑。自然非IBM所出的Eclipse是也。(IBM = 满清刑部?晕)天瀑:忽攻忽守,用剑者必须很专一, 一把表示纪律的剑。自然是cvs。原创 2005-08-30 17:31:00 · 1410 阅读 · 0 评论 -
Ruby on Rails 他山的宝石 - 改进我们的struts!
ROR的飓风劲吹,仁者心动。我们开发团队mvc一直是用struts,我准备用它的 convention over configuration 之风清洗一下我们的struts使用,顺便把CRUD通用业务操作也完善起来,重复的工作让它最简,且保留扩展点。在看ROR的帖子时扫到了Jdonframework,也借鉴了一些思路。 下来我把基本的思路描述一下: ROR用约定的url格原创 2005-09-09 19:06:00 · 1762 阅读 · 0 评论 -
实践struts之token防止回退重复提交表单
动用google,找到一两篇相关文章,实践成功。建一个action基类TokenAction,使用模板方法,如下: public ActionForward execute( ActionMapping mapping, ActionForm form,原创 2005-01-11 20:19:00 · 2202 阅读 · 1 评论 -
SiteMesh - 激赏!
视图模板,我一直用tiles,作为struts插件使用。今天实践了一回SiteMesh,其设计上的灵光让人赞叹不已,记得上回这么激动还是接触spring时吧。tiles好象从“美“的角度就差了一些,呵呵。www.jboss.org 就是采用它的哟。不知道谁在项目中实践过,真想交流一下,看看他是怎样应付一些复杂情况的。简介:SiteMesh ,出自Opensymphony,和大名鼎鼎的Web原创 2005-01-12 16:51:00 · 1458 阅读 · 1 评论 -
spring 分模块开发简单实践
spring 分模块开发背景 我们一般采用spring+struts+ibatis的开发模式,使用spring统管业务bean,当项目很大时,面临一个bean命名冲突问题,如果和struts一样,采取分模块的方式,不同的模块有自己的命名空间,将会避免几个并行开发的子系统或模块共用一套bean配置文件时id产生重名的问题。简单方案 整个系统所使用的公共bean,例如数据源、原创 2004-12-28 11:00:00 · 2925 阅读 · 0 评论 -
tomcat5在win2k下配置的两点预备工作
chinese code question1 在web.xml中添加过滤器SetCharacterEncodingFilter,解决Post2 在server.xml中的节<connection ....最后添加 uriEncoding="GBK",用来解决Get,如下: enableLookups="false" redirectPort="844原创 2004-08-04 13:52:00 · 1141 阅读 · 0 评论 -
我的struts开发工具、插件
所谓工欲成其事,必先利其器。罗列一下本人在实际开发中所使用到的和struts有关的东东:1.IDE - Eclipse2.1.2 + 语言包。偶比较怀旧(也可以说是懒),新版本一直没有去download.2.tomcatPlugin_v3.0(2003.7.27) 在tomcat下Jsp或Servlet的图形化调试插件。它的调试原理针对jsp文件所产 生的java文件, 不要幻想可以对jsp文件直原创 2004-08-10 19:07:00 · 1792 阅读 · 0 评论 -
我的iBatis使用总结
EJB很重,不需要分布式的中小项目慎用,Hibernate虽好,公司缺少高水平的OO设计师,程序员水平参次不齐,iBatis是我本人比较喜好的半自动ORM东东。持久层使用了iBatis后,团队中以前八仙过海的jdbc包装不见了,大家的编码风格统一了,会补长木桶较短的木板。大家不会再把精力浪费到分页 连接池 主键生成等地方了,可以集中精力进行业务组件的编写。 以下是个人感受:原创 2004-12-02 21:28:00 · 1460 阅读 · 1 评论 -
iBatis 学习 之二 事务处理
这部分是和Dao紧密相联的。我们在使用Dao时,如以下代码,先插入新记录,再进行更新: personDao.insertPerson (person); // Starts transaction person.setLastName("Begin"); personDao.updatePerson (person); // Starts a new transaction因为没有显原创 2004-12-08 09:39:00 · 1345 阅读 · 0 评论 -
eclipse的Spring插件安装备忘
只要可以可视化管理好Bean配置文件,就方便多了。for eclipse 3.0.1首先到eclipse下载站点上(tool)找到GEF3.0.1,安装成功后,在eclipe中打开help>software updates>find and install,选择 search for new features to install. 在打开的界面中,选择new remote site,加入原创 2004-12-09 10:55:00 · 4036 阅读 · 0 评论 -
初试Spring AOP
gigix 说,j2ee的世界象一座魔法森林,数不清的新概念和open source framework,让新进来的同学非常眼晕。gigix还说,AOP正在成为软件开发的下一个圣杯,呵呵,我想起帝国时代中的圣杯了,僧侣们梦想收集到的法器,可以提升精神力量......在上回学习iBatis的Dao框架时,提到动态代理,恰好Spring framework中也支持AOP,同样是采用jdk1.3的动原创 2004-12-09 14:02:00 · 1614 阅读 · 0 评论 -
当iBatis遇到了Spring
随着了解得越多,spring给人的惊喜也越多,初步学习了关于二者整合开发,主要的资料是夏昕的spring文档以及spring官方例子jpetstore。把心得在此纪要一下。 从架构上讲,spring作为轻量级Ioc容器无疑要位于高位,所以iBatis现在只需要致力于完成持久层的sql-object映射工作,其他的事就由spring来装配好了。 首先是连接池,在spring中可以配置一个da原创 2004-12-10 15:04:00 · 1198 阅读 · 0 评论 -
iBatis 学习 之一 DAO部分
iBatis作者不喜欢在类前加详尽的说明,批评一下.首先看一下包 com.ibatis.dao.client 1 定义了一个声明式接口 Dao2 一个DaoManager接口,它有一个创建Dao实例的工厂方法: public Dao getDao(Class type); 是为了将用户自己写的Dao接口与sqlMap实现类解藕,通过在dao.xml中指定二者的映射。 public Dao原创 2004-12-07 12:38:00 · 3080 阅读 · 0 评论 -
struts 单元测试
自动化测试可以减缓我们的压力,在重构时增强信心。在J2ee体系中,分层(tier)设计的思想大家都已经比较熟悉了,在持久层和业务层的测试比较简单,使用junit就可以了,但是涉及到web容器,例如对struts部分的测试,就比较麻烦了,我以前也一直是只对service层作单元测试的,即首先保证facade层不出错。我对web层的测试的概念一直认为是作并发性访问压力测试,性能测试的,没想过作功能性的原创 2004-12-08 15:00:00 · 2236 阅读 · 0 评论 -
我的eclipse版本选择
IDE的选择大多是先入为主,如果一开始你上手了JBuilder,眼中就全是它的好,其缺点也可以包容了,况且高手们都不会对主流工具有任何偏见的。我搞过几年的delphi,按理说应该首选borland的产品,但我第一次搞的J2EE项目,公司是亲IBM系的,websphere + visualAge,后来出了Eclipse,没理由不爱它。现在机器上留着两个版本,同时在用,2.1.2 和 3.0.原创 2004-12-06 16:21:00 · 4328 阅读 · 0 评论 -
struts1.1中的异常应用实践
struts的异常处理机制带我们很大的方便。通过思考和自己作例子,觉得以下这种方式较为灵活: 首先为你的应用程序定制一套异常类。例如,先定义一个基类(可以是虚类),注意,在此它扩展自RuntimeException,这是为了在struts的action中顺利捕获到。public class BaseException extends RuntimeException {...}下原创 2004-12-17 12:55:00 · 1553 阅读 · 2 评论 -
补充关于iBatis的缓存使用
在你的xml配置文件中,每一个 cacheModel 元素,如下 readOnly="true" serialize="false"> 1 属性readOnly如果不写,默认是true,这时的缓存效果无疑最好,请注意这里的只读并不是说数据库里的数据不能增删改,而是指client从缓存池中取得对象后,不会修改其属性状态,因为并发用户得到的是同一个缓原创 2004-12-15 16:55:00 · 1685 阅读 · 0 评论 -
避免过度设计
今天看了程序员2004年11期中的一篇文章,作者为温昱,题为“拥抱变化,敏捷开发从理论到实践”,颇触动。 文章提出,良性信赖对系统是无害的。当你在设计时预期的需求变化后来发生了,这就是完美设计,否则,属过度设计!!很多时候,程序员或系统分析员喜欢运用设计模式,近乎刻板地给系统分层,而不考察系统实际情况,有点为用模式而用模式的感觉。 我感觉自己就有这个倾向,我们当前的项目,业务原创 2004-12-22 19:54:00 · 1288 阅读 · 0 评论 -
iBatis 2.1.0 Released,but...
这次小小的升级,在配置上加了一个新特性: discriminator,方便一张表对应一个继承体系的映射关系。经过实践,发现一个怪现象,在sql-map-config.xml中,多个配置文件的次序必须是有 discriminator 的放在后面,晕。只要相反,就会报错:Translating SQLException with SQLState 07009阿弥托佛,最近忙得一塌糊涂,日志N久未更原创 2005-05-24 15:34:00 · 1524 阅读 · 0 评论