ofbiz进击 第一节。 新建自己的webapp项目


创建一个webapp的过程
更新下来项目(直接从svn上面切下来就好),要先ant clean 下,然后在重新ant下。
一:

start sheel here :ant create-component(创建组件) 会在热部署文件夹中自动生成对应的项目文件列表

二:

(可能性)当项目文件夹生成以及项目启动之后,发现项目在页面上显示不了,然后通过直接路径访问,发现项目是存在的,只是项目拒绝访问,是因为在创建项目的时候,填写了 对应的权限,要将访问权限给用户组。
进入到项目的文件夹下面 然后输入命令 ant load-file -Ddata-file=权限文件

三:

如何要创建一个实体对象,需要在framework/entity/entitydef/entitymodel.xml 中添加一个entity节点对象。(需要注意的地方是:字段field 的type 可以根据fieldtypemysql.xml中 查看已经定义好的type类型。)

<entity entity-name="Student" package-name="com.brains.student">
<description>学生</description>
<field name="studentId" type="id-ne"></field>
<field name="studentName" type="name"></field>
<prim-key field="studentId"/>
</entity>

四:

control 文件,实现请求与资源的扭转功能。数据库连接:配置在entityengine.xml中,在fieldtypemysql.xml里,定义了mysql中常用的字段类型。自己构建数据时,尽量创建id小于10000的数据,因为ofibiz的数据引擎在创建数据的时候,会从10000位开始点创建,防止冲突。


五:

在config配置文件中,可以通过配置去实现语言国际化,同时也可以配置实体对象对应的字段属性,当表格填充或者编辑页面的时候,会自动加上列的解释说明。

<property key="FormFieldTitle_roomId">
<value xml:lang="zh">房间ID</value>
<value xml:lang="en">Room ID</value>
</property>

六:

自动根据实体对象类型去填充form列表或者表单的时候,有两种方式:
<auto-fields-service service-name="createStudent"/>(会根据services方式的入参跟出参,去显示页面上的表单内容,即如果是入参必须要填写的话,对应的fieldtext对有输入校验,出参则不会再页面上显示)
<auto-fields-entity entity-name="Student"/> 这种方式的自动装配,会将实体对象的所有属性全部都展示显示出来。


七:

查询 <service service-name="performFind" result-map="result" result-map-list="listIt">注意 当使用这个service的时候,需要注意的是列表名要注意一定要是listIt 。

八:

当使用Java类做方法的时候,如果出现class not found 这样的错误,而很明显,这个类存在于src目录下,则需要在项目上右击,然后在java build path 的souce 标签下添加对应的src文件夹,然后重新启动一下项目,功能就能正常运行了。

九:

在entitymodel.xml中添加类的时候,如果不设定主键的话,表会创建不出来。

十:

修改哪些文件一定要更新

1:service.xml 2:新增java文件的时候 需要更新.3:修改Services.xml类型的文件.

原文地址:https://www.cnblogs.com/wangqc/p/ofbiz_create_app.html