用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的源代码来实现FCKeditor的集成。"工具"标签则表明FCKeditor是作为一种开发工具被使用的。 **文件名称解析:** "fckxml.js" 这个文件是FCKeditor的...
在jbpm集成中,我们需要修改AppFuse的配置文件,添加jbpm的相关配置,例如数据源、任务执行器等。 4. **Spring Modules**:Spring Modules提供了与特定框架集成的模块,比如Spring Modules for Hibernate,可以简化...
**AppFuse 学习笔记(一):安装与部署** AppFuse 是一个开源项目,它提供了一种快速构建企业级 Web 应用程序的方式。它使用了多种流行的技术栈,如 Spring Boot、Hibernate、Thymeleaf 和 Maven,使得开发者可以更...
`-DgroupId` 和 `-DartifactId` 分别指定了项目的 groupId 和 artifactId,这些值可以按需修改。 **3. 加速 Maven 构建** 如果网络条件不佳,Maven 构建可能会非常慢,因为它需要从远程仓库下载大量依赖。为了...
现在,你已经有了一个基本的AppFuse应用,可以根据需要添加功能、修改代码,Maven会帮助你管理依赖并自动化构建过程。 在这个过程中,你将学到如何使用Maven的生命周期和插件,以及如何通过POM文件来管理项目配置。...
这种方式允许开发者在不修改原有代码的情况下,只需更改配置就能切换不同的实现,实现了松耦合。 AppFuse 这样的框架为开发者提供了便捷的起点,它简化了集成多种技术的复杂性,使得开发者能够快速搭建一个具备基础...
AppFuse 是一个开源项目,它提供了快速开发Java Web应用程序的基础框架。这个框架集成了Spring、Hibernate和Struts等主流技术,使得开发者能够迅速构建出符合MVC架构的应用。在最新的版本2.1.0-M2中,AppFuse 提供了...
1. **快速原型**:AppFuse提供了一个基础的模板,开发者只需根据需求修改即可,大大缩短了项目的初始化阶段。 2. **标准化**:AppFuse遵循最佳实践,如Maven构建系统,使得项目的结构和配置文件保持一致,便于团队...
在AppFuse中,这些框架通过外部引用的方式被整合到项目中,这意味着开发者可以在不修改核心代码的情况下,通过更改配置文件来切换不同的CSS框架。 "对项目的页面布局自动构建"指的是AppFuse能够自动生成基本的HTML...
### AppFuse2 学习知识点总结 #### 一、AppFuse 概述 - **定义与价值**:AppFuse 是一款开源项目,旨在利用一系列开源工具帮助开发者高效地搭建 Web 应用程序的基础架构。通过使用 AppFuse,开发人员可以在构建新...
5. **样式快速修改**:内置了一些默认的 CSS 样式,可以通过简单的修改实现界面风格的快速调整。 6. **自动化测试支持**:内置了 JUnit 测试框架的支持,帮助开发者进行单元测试和集成测试,确保代码质量。 #### 三...
现在,你可以根据需求修改源代码,添加新的功能。Appfuse2提供了丰富的示例代码和模板,方便快速开发。 通过以上步骤,你就成功地使用Appfuse2搭建了一个基于Oracle数据库的Web应用。Appfuse2的强大之处在于它的...
文档由mraible于2006年10月14日创建,并于2007年4月20日进行了最后的修改。文档包含了以下多个章节: 1. **AppFuse快速入门**:介绍如何快速上手AppFuse,包括环境配置和第一个项目的创建。 2. **Maven新手指南**...
### AppFuse配置与使用详解 #### 一、AppFuse框架简介 AppFuse是一个开源的Java Web应用程序框架,它集成了多种流行的开源技术如Spring、Hibernate、Struts等,旨在简化Web应用的开发流程,提高开发效率。AppFuse...
2. **aspectjweaver-1.6.0.jar**: AspectJ是一个强大的面向切面编程(AOP)工具,它扩展了Java,使得可以在不修改代码的情况下插入横切关注点,如日志、事务管理等。1.6.0版本在这里可能是用来支持AppFuse中的AOP功能...
4. **源码**:AppFuse作为一个开源项目,提供了源代码,允许开发者学习、修改和扩展其基础框架。 5. **工具**:AppFuse作为开发工具,简化了Web应用的开发流程,通过预配置的模板和最佳实践,提高了开发效率。 6. ...
5. **视图装饰器**:`decorators`目录可能包含了FreeMarker或Velocity模板,这些模板用于应用的视图装饰,即在页面渲染前添加或修改内容,提供了一种统一布局和样式的方法。 6. **容器配置**:`WEB-INF`目录通常...
通过修改pom.xml文件,可以添加或更新项目依赖,以实现特定的功能需求。 **七、最佳实践与示例** AppFuse 提供了丰富的示例代码,帮助新手快速上手。例如,它展示了如何创建、读取、更新和删除(CRUD)数据,以及...