`
zhaoshg
  • 浏览: 253257 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

修改AppFuse

阅读更多
用AppFuse有一段时间了,也发现了它的一些问题,或者说不适合我们开发的地方。

build.xml中的setup:setup是安装数据库、tomcat、生成源代码并部署的target,在初次使用时很方便。但以后使用就有点问题了,因为每次执行这个命令就要把数据库删除重新安装一遍,尤其是在多人同时开发的时候,每个人都setup一次实在有点麻烦。因此我在使用过一次setup后,就将命令depends="setup-db,setup-tomcat,deploy"修改为depends="package-dao,setup-tomcat,deploy",以后再使用这个命令就不会再去动数据库了。如果有需要修改数据库的地方,单独运行ant setup-db。
ApplicationResources_zh_CN.properties & ApplicationResources_zh.properties:这两个中文资源文件中存在乱码,需要把乱码的地方修改过来。很奇怪的是将修改好的文件copy到别的地方又会出现同样的乱码,所以事先要做好备份工作。
AppGen:使用AppGen生成文件的时候常常会在sample-data处报错。原因我没仔细研究,但自我认为sample-data.xml在这里没有生成的必要,所以在extras\appgen\build.xml中搜索sample-data.xdt,将该处的template标签注释掉了。
struts_form.xdt:\metadata\templates下的struts_form.xdt是用来根据POJO生成FormBean的xdoclet文件。当POJO中含有同样是POJO类型的属性时(通常是表中的父表关系),FormBean倒不会有问题,可validation.xml会自动将这个父亲中的所有属性也纳入当前FormBean里进行验证。这意味着我们在做子表单时必须包含父表单中的所有属性,麻烦!validation.xml是根据FormBean生成的,所以到struts_form.xdt下查找struts.validator,其中有一行:@struts.validator,仔细读代码就知道了这里是判断如果是org.appfuse.model.BaseObject类型的属性,就在该属性前加@struts.validator注释,所以把这一行去掉。如果需要验证,手动在POJO的get方法前加一行@struts.validator就可以了。不过不知道如果想要单独对父亲属性中的某个属性进行验证该怎么做?
DAO单元测试:AppGen生成的DAO单元测试类不能通过测试。原来在DAO的测试类中,测试了DAO的CRUD方法。在testAdd方法中,会添加一条主键值为1的记录,可是在testRemove的测试中,删除的主键值却成了3,系统找不到这条记录,当然会报错了。在extras\appgen\src\detailed下有生成DAOTest类的模版DAOTest.xdt,找到testRemove方法,把第一句修改为<XDtMethodEx:idField getType="propertyType"/> removeId = <XDtForm:classNameLower/>Id; 这样,删除的记录主键值就与添加的主键值就一致了。不过如果主键是随机生成的,这个办法就不行了,那么自己修改测试类吧。
密码加密:AppFuse默认是给用户密码加密的,如果不想加密,需要在properties.xml中设置属性encrypt.password为false,这样用户登录时系统就不会对密码加密了。但是用户注册和编辑信息时程序却没有进行判断,直接对密码加密。这里需要修改的地方有两个:SignupAction和UserAction,分别对加密的地方做一个判断。Boolean encrypt = (Boolean) getConfiguration().get(Constants.ENCRYPT_PASSWORD);一句可以拿到配置文件中的值。
在新版的AppFuse1.9.1中,作者对Displaytag显示的信息也进行了汉化。但是在部署时忘了转成unicode码,于是,JSP页面上会出现乱码。这个要修改build.xml。搜索“native2ascii”,会找到转换ApplicationResources.properties的地方,与这个文件的操作类似,在native2ascii标签的includes里添加displaytag_zh*.properties。另外,在这个target的copy fileset标签里要exclude displaytag_zh*.properties。
分享到:
评论

相关推荐

    appfuse

    使用appfuse2.0,下载过来的实例源码,没有jar包

    AppFuse

    本文以一个 J2EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 AppFuse 一步步地构建 J2EE 项目。通过阅读本文,读者不仅能够学会用 AppFuse 进行开发,而且能够充分体会到 AppFuse...

    AppFuse入门文档(AppFuse与SpringMVC+mybatis整合)

    本文档详细描述了AppFuse与SpringMVC+mybatis整合的过程,只要你懂一些基本的eclipse操作和基本的maven命令,就可以在三分钟之内迅速的搭建出一个AppFuse的架构

    appfuse1.4-architecture

    06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬

    APPFUSE工具研究.doc

    Appfuse是一个开源的工程应用,它集成了现在最流行的开发框架到该应用中,使用Maven可以很方便的开发和部署因为。也可以集成到现在流行的开源开发工具如eclipse,idea等。现在让我们简单的看看APPFUSE开发应用的简单...

    可直接使用的appfuse项目

    AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...

    Appfuse1.9至2.0.2

    主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.

    appfuse新手上路

    新手使用appfuse2.0,启动步骤和配置过程

    AppFuse2.1所需包

    AppFuse2.1所需包,主要包括Spring MVC+Hibernate4 还有一些其它包!

    appfuse 学习笔记

    Appfuse 一个开放源码的项目和应用程序,帮助我们快速而高效的地开发。

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2 spring3.0 hibernte3.3 struts2.1.8

    Appfuse框架解析

    Appfuse框架解析,包括登陆验证,执行顺序,加载策略等。

    AppFuse项目研究

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持

    基于AppFuse框架的B2C电子商务系统研究与实现

    基于AppFuse框架的B2C电子商务系统研究与实现

    appfuse学习笔记(一)安装部署

    NULL 博文链接:https://savagegarden.iteye.com/blog/427169

    SSH学习及开发框架-appfuse

    appfuse 有struts2+hibernate+spring的整合 springmvc+hibernate+spring的整合 多模块,但模块都有 学习开发参考使用非常方便 可以到官方下载最新版的,我只是把自己下载的打包整理一下 注意哈,都是基于maven的...

    Appfuse教程Appfuse开发.pdf

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持。  AppFuse是一个集成了...

    appfuse使用手册

    代码自动生成工具appfuse的中文使用手册

    AppFuse(3)

    AppFuse(3)AppFuse(3)AppFuse(3)AppFuse(3)

Global site tag (gtag.js) - Google Analytics