- 浏览: 713717 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
一剪梅:
关于您对于 hasRolePermission 用法的解释, ...
OFBIZ安全性技术(翻译) -
沈寅麟:
数据模型资源手册卷3中文版出版了 -
donaldjohn:
恭喜恭喜, 预祝大卖
数据模型资源手册卷3中文版出版了 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz入门实训教程 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz促销码生成解释
网上的资料太老了
都是04,05年的
ofbiz还是在发展的。
javaeye太垃圾了
只允许jpg,gif,png,bmp格式的图片和zip,rar格式的压缩文件。最多三个附件, 每个文件大小不能大于5M
我贴了n久图都没贴上去。
Building a Complete Application with OFBiz
用OFBiz创建一个完整的应用
在这个指南中,我们将使用OFBiz创建一个完整的应用程序。我们的应用程序将允许用户登录并创建一个他们自己个人信息,他们的爱好。并且查看其他访问这个站点的人和他们的爱好内容等等,这是一个简单的访问站点。
previous tutorials,
请确认你已经看过前面的所有指南,我将不再重复相同的内容。
定义一个数据模型
第一步是定义数据模型。我们想用户信息和他们的爱好并且查看每个人的所有爱好(或者, 所有的人分享一种爱好)。数据模型是定义人员,爱好,和人员-爱好的联系。
在关系型数据库中,你将定义两个table,其中一个是人员,另一个是爱好。 还有定义他们之间联系的第三个表. 第三个表允许一个人员关联许多爱好, 反之亦然. 你将定义人员和爱好的外键来约束第三个表。
OFBiz工作原理也是类似. 你可以定义两个实体,我们将定义helloperson和hellohobby ,和一个连接实体, hellopersonhobby , 并建立了它们之间的关系. 他们之间关系主要是外键约束,而且不需要你自己去定义。(当外键改变,需要改变你的代码) .
注意:我们正在创造一个应用完全独立的数据模型来作说明. 如果我们是在建立一个真正完整的应用, 最好的做法是尽可能利用许多现有的OFBiz框架实体来做,而不是创造自己helloperson ,我们将利用现有的框架OFBiz Party/Person/PartyGroup这三个已有实体.
定义数据模型, 在hellocrm下 创建entitydef文件夹
在entitydef /目录内 ,创建entitymodel.xml和entitygroup.xml
helloperson和hellohobby各有一个主键, hellopersonhobby有两个主键, 它用来链接helloperson和hellohobby . 这是好的做法,让你外键关联,使调试容易,避免发生意外。 外键的名称OFBiz由产生.
定义这些实体在另一文件里, entitygroup.xml,这也是很重要的(但很容易忘记) 。 在entitydef /目录,这样OFBiz就会知道哪些数据写入数据库中,以供使用人) :
否则,将实体存在OFBiz的,但是当你真正尝试使用他们,你会得到这个错误:
org.ofbiz.entity.GenericEntityException: Helper name not found for entity HelloPerson
最后,你必须增加这一行到你的ofbiz-component.xml中的 ,这样让OFBiz知道这个实体是应用程序的一个组件
现在启动OFBiz.你将看到你的console.log在(linux下),你在(Windows)的命令行下,通知你你的实体是被加载的。
5336 (main) [ UtilXml.java:242:DEBUG] XML Read 0.0070s: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/entitydef/entitymodel.xml
5693 (main) [ UtilXml.java:242:DEBUG] XML Read 0.0050s: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/entitydef/entitygroup.xml
When you go into webtools, you will see the entities:
在你进入webtools,你将看到这些实体。
点"All" 在 HelloPerson ,你可以看到他的所有属性:
注意,接下来的每个属性是有java类型和SQL类型. SQL类型是在ramework/entity/filedtype/目录,并视你使用数据库不同而不同, (自带的是 Derby) . 如果有任何数值,它会显示在这个实体的属性.
创建例子数据
现在让我们一起创建一些例子数据,为我们的hobbies. 在大多数OFBiz的应用程序中, 我们都将创造一个data/目录内的应用,并创建一个XML文件的例子数据. 让我们看看hobbiesdata.xml :
这个实体引擎XML文件, 是一个标准OFBiz的XML格式的输入及输出数据. 实在是相当简单. 使用名称是实体( " hellohobby "在我们的情况)的标签名称, 使用名称的领域要么属性或作为内标签(见上次值为"葡萄酒"
你的属性可以是属性的数值或内部的标签的值, 如果你有很长的数值在CDATA段落里面是最好的. 另外, 主键不须大写或隔着_ , 但在其他OFBiz的应用程序这是一个规范.
现在你准备加载例子数据. 到Web Tools主界面,你会看到链接的" XML Import " . 点击" XML Import " ,并于下一个画面,它会提示你文件夹的名称, 在你的OFBiz中的路径. 我通常不点击任何复选框和仅仅是" Import " . 如果你是成功的, 同一个介面底部会告诉你,有多少数据添加:
1.
如果你的导入失败了,仔细地阅读错误信息从你的console.log文件。 它是 通常 是这些原因之一:
1. 你使用了为一个主键是太长的数值。 OFbiz “id-ne”是Java String,但是在SQL中他是20-char的VARCHAR。
2. 你丢失了一个必需的主键。
3. 你设法插入一个属性将违反外键约束。
如果你仔细地读了日志,你能明白(GenericValue) OFBiz设法创建的数值,并且数据库反馈的错误信息是什么。 它也许给你一个违反了外键约束并且有些隐蔽的外键的名字
你在Web Tools 主页也许注意了“XML Export”链接。 这个链接可以为你产成一个XML文件。
现在去“Entity Maintenance”(实体维护),在HelloHobby旁边点击“所有”,你可以看到插入的数值:
除了增加你的属性和数据之外,当你的数据被创建并且被更新时,OFBiz自动地创建了时间戳,这是为了横跨OFBiz多个事例同步数据。
最后,如果你增加这个命令到你的ofbiz-component.xml文件, 在安装过程期间OFBiz可以自动地安装你的例子数据:
OFbiz实际上让你定义数据是否有“例子数据”,这样为你的app可以展示,例子数据仅仅是展示用的。
创建业务逻辑
即然我们已经定义了数据模型,我们可以写一种简单的应用以delegator直接地访问实体。 这是OFBiz应用程序的标准操作,但是,做为业务逻辑的分层:新建,更新和删除。 delegator直接地为查找数据使用,如更加复杂的查寻。
创建业务逻辑的过程是有二步。 首先,你定义了通用的业务逻辑在 XML文件(使用class 和 方法 或者 脚本),来告诉OFBiz业务逻辑引擎你的参数和位置,第二,你实现服务可以用java,OFBiz minilang,或者另一种脚本语言
业务逻辑通常定义在一个servicedef/目录里面 ,并且包括一个或更多services.xml文件。 这我们的services.xml 文件:
注意services.xml是参考实体执行。同时直接地与 标签执行。 这些自动属性标签保存你时间并且使你的应用更加容易维护。
你在你的ofbiz-component.xml也会需要参考service资源。 另外,你必须创建 并告诉它在哪里的ofbiz-component.xml装载apps。 这就是为什么我们的ofbiz-component文件看起来相似,在增加classpaths以后,实体体定义、 service定义和例子数据:
现在它是否看起来和其他ofbiz-component.xml很相似?
现在创建services。A Java service流行的写法是在你的应用的src/目录里面被写的: 一个公共的class 有两个参数的公开静态方法, DispatchContext为得到一个对象是你输入参量的delegators, dispatchers, locale, and security,和称上下文的 map并且退回结果map:
Java services也将需要编译,需要适当的classpaths的知识为其他OFBiz apps。 这可以使用ant 并且build.xml构建脚本,当然你可以从另一种应用通常复制。 它是在所有OFBiz应用和框架中一个相当长的标准文件,因此我这里不会包括它。
当写你的service和创造build.xml脚本,你能建立你的象这样的Javaservice:
sichen@linux:~/eclipse/workspace/ofbiz/hot-deploy/hello3> ant
Buildfile: build.xml
init:
clean-lib:
[delete] Deleting directory /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/lib
prepare:
[mkdir] Created dir: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/classes
[mkdir] Created dir: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/lib
classpath:
classes:
[javac] Compiling 1 source file to /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/classes
jar:
[jar] Building jar: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/lib/ofbiz-party.jar
BUILD SUCCESSFUL
Total time: 2 seconds
构建过程基本上采取了在src/目录的所有您的文件,编译了他们并且把他们放入构建或lib目录。
Minilang比较起来是简单的。 简单的minilang service在script/目录里面并且是一个XML文件。 由于它是专门为共同的OFBiz应用任务设计,例如 查寻数据,存放数据,检查premissions,并且与现有的实体一起使用,并且执行业务逻辑,它使那些任务工作非常容易:
最后,测试它,重新启动OFBiz装载所有新的定义在ofbiz-component.xml和services.xml。 然后,打开beanshell 窗口并且测试我们的service (注意: 您首先应该 下载bshcontainer.bsh 并且把它放入在你的ofbiz/目录)
这里, beanshell称执行service的服务调度员,他们是成功的,因此正确的数据被创建。 (当然,它实际上采取了大约六次尝试,但我不会和你谈论细节使你不耐烦。)
那么现在你创造了数据模型和service为他们。 下一个步骤将放他们入Web应用程序。
- hello3.zip (736 KB)
- 下载次数: 330
发表评论
-
OFBiz抽取实体引擎和服务引擎思路(1)
2020-03-31 00:39 554# OFBiz抽取实体引擎和服务引擎思路(1) ... -
minilang开发日志书写规范
2019-01-02 10:34 529minilang书写日志5步法 任何一个xml方法中必须 ... -
自动化配置界面表定义思路1.0
2018-11-24 23:21 742总表 path 唯一编码 tableName 表名 ... -
OFBiz前端VUE组件规划
2018-11-10 10:51 1032iasudu.iteye.com 编 号 : ____ ... -
增强OFBiz通用查询方法思路
2018-11-09 17:15 701增强OFBiz通用查询方法思路 <se ... -
OFBiz前后端分离项目代码规范建议2018版
2018-05-11 09:43 1378OFBiz前后端分离项目代码规范建议__build2018 ... -
前端脚手架使用指导
2018-03-02 14:44 6831 安装nodejs https://nodejs.or ... -
RestEventHandler
2018-02-01 23:37 5/**************************** ... -
数据模型资源手册卷3中文版出版了
2017-02-18 11:58 1944我翻译的数据模型资源手册卷3出版了 -
OFBiz促销码生成解释
2014-10-07 22:07 1507OFBiz 我的购物车 输入固定的邀请码实现优惠促销 需要解 ... -
电商基本页面
2014-09-18 20:49 1705<!--StartFragment--> ... -
OFBiz入门实训教程
2014-07-14 14:28 2965加速度 15000850008 大家好,为了ofbiz的 ... -
创建OFBiz的jQuery Mobile入门页面
2014-06-13 14:21 1781jQuery Mobile 框架是一套 ... -
店铺研究
2014-05-23 23:11 1089店铺权限研究,规划如下权限: 分店库存管理权限 分店进货权限 ... -
15天用OFBiz做一个商城管理后台和店铺管理后台
2014-05-03 20:33 3999仅仅是记录一些弟兄们的工作经历。没有吹嘘使用OFBiz使用效率 ... -
一个朋友做OFBiz Crud遇到的问题
2014-01-02 12:55 1753Crud 遇到的问题 问题1:在myeclipse中开发的of ... -
OFBiz的Cache研究
2013-12-30 14:35 2366任何一个cache对象的配置属性都可以在cache.prope ... -
OFBiz同步设置说明和示例
2013-11-23 02:03 1739同步设置说明和示例 使 ... -
OFBiz的Axis2
2013-11-16 23:43 1159很多人都对Axis2的封装和调用苦恼。 今天再次深入精读OFB ... -
How to create a new component
2013-09-21 23:31 967How to create a new component ...
相关推荐
ofbiz一个完整例子,ofbiz学习实战例子.
与hello资源结合使用,这是一个html5后台管理的模块,但实现了ofbiz主题针对具体应用的深度定制方法,里面只有一个页面,但基本思路已经包括在里面,希望大家能不断挖掘
ofbiz的helloworld例子,网上不好找到比较全的,这个比较全,可以了解ofbiz的整体架构和运行机制。
ofbiz 部署一个新网站,一个简单的方法利用ofbiz去建立一个新网站
NULL 博文链接:https://lmzf.iteye.com/blog/575969
ofbiz电商框架hello与皮肤定制实例,实现自定义自己的所有主题,包括菜单与内容区域,
OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。...
别人写的一个ofbiz的一个简单的例子,希望对大家有用,顺便挣点儿积分!
使用批处理(包含vbs)和winrar自解压方法制作ofbiz web应用安装包。 包括:自动安装mysql服务,设置ofbiz启动所需jre环境,生成桌面启动ofbiz server的快捷方式。 包含文件:winrar自解压启动文件install.bat及...
ofbiz入门图文讲解,包括入门helloworld 和使用ofbiz 新建实体 操作数据库对实体增删改查
OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门
ofbiz 官网文档翻译 ,按照此文档里面的步骤,可以安全快速的编译自己的第一个小模块 "Hello World",一开始是很抵触的,但是学着学着发现其实框架道理是相似的,为了将代码解耦,每个框架都有自己的独特解耦之道和...
像 Tomcat, Ant, BeanShell, Jboss 等,构建了一个强大的系统平台,Ofbiz 已经完成了大部分商务类软件系统 都需要的部件,像用户认证、工作流、商务规则处理等,Ofbiz 的核心技术在于 Entity Engine,其他的组件基本...
OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。...
ofbiz10.04表结构(包含自己翻译),以前发现网上很难找,自己分享下
OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。...