Ofbiz支持多种表示层的生成方案。可以是HTML,FTL ,JSP、screen widgets等等,甚至可以让开发者根据需要进行扩展。至于如何扩展,我们今天在此不作讨论,以后合适的时候我会给打家分享。在现有的表示层开发方式中,最能展示OFBIZ风格和特点的当为widgets了。基于widgets进行表示展的开发,高效,扩展性好,模块化结构明朗,开发效率也最高,这也是ofbiz首先的开发方式。但是ofbiz中基于widgets的开发,与我们常见的开发方式有很大的不同(至少对于新手页言是这样的确),这也就加大了入门的难度。今天我就来给大家讲讲widgets,和大家分享它的实现原理,以及我们怎样才能有效的用好它。 我们先来说说从xml的配置到最后html转换的大至过程。我们知道在基于widget进行界面开发时,我们总要在一个xml文件中定义screen,并且screen还可以进行嵌套,可以在screen中加入逻辑、引用form,菜单、或ftl文件等。那么最后它们是怎样有序的组成一张html页面,直至最后呈现在用户的面见的呢?当请求进入服务器以后,根据请求路径的定义(control.xml文件中定义的),可以的到相应的screen定义。Ofbiz加载并解析xml。解析后得到一个又一个的页面元素对象,ofbiz会解析这些对象,成生一个又一个的ftl宏语句。由freemarker编译即可得出我们需要的html.原理非常之简单。 举个例子来说吧,比如我们在screen中引用了catalog的FindCategory这个form。(<include-form name="FindCategory" location="component://product/widget/catalog/CategoryForms.xml"/> )。通过ofbiz根据xml解析后 就会得如下的freemarker语句: <@renderScreenBegin /> <@renderFormOpen linkUrl="/catalog/dyn/FindCategory" formType="single" targetWindow="" containerId="FindCategory" containerStyle="" autocomplete="" name="FindCategory" viewIndexField="viewIndex_0" viewSizeField="viewSize_0" viewIndex="0" viewSize="20" useRowSubmit=false /> <@renderHiddenField name="noConditionFind" value="Y" id="FindCategory_noConditionFind" event="" action="" /> <@renderFormatSingleWrapperOpen formName="FindCategory" style="basic-table" /> <@renderFormatFieldRowOpen /> <@renderFormatFieldRowTitleCellOpen style="" /> <@renderFormatFieldRowTitleCellClose /> <@renderFormatFieldRowWidgetCellOpen positionSpan=0 style="" /><@renderTextFindField name="productCategoryId" value="" defaultOption="contains" opEquals="等于" opBeginsWith="开头字符" opContains="包含" opIsEmpty="为空" opNotEqual="不等于" className="" alert="false" size="25" maxlength="" autocomplete="" titleStyle="" hideIgnoreCase=false ignCase=true ignoreCase="忽略大小写" /> <@renderTooltip tooltip="" tooltipStyle="" /> <@renderFormatFieldRowWidgetCellClose /> <@renderFormatFieldRowClose /> <@renderFormatFieldRowOpen /> <@renderFormatFieldRowTitleCellOpen style="" /> <@renderFormatFieldRowTitleCellClose /> <@renderFormatFieldRowWidgetCellOpen positionSpan=0 style="" /> <@renderTextFindField name="categoryName" value="" defaultOption="contains" opEquals="等于" opBeginsWith="开头字符" opContains="包含" opIsEmpty="为空" opNotEqual="不等于" className="" alert="false" size="25" maxlength="" autocomplete="" titleStyle="" hideIgnoreCase=false ignCase=true ignoreCase="忽略大小写" /> <@renderTooltip tooltip="" tooltipStyle="" /><@renderFormatFieldRowWidgetCellClose /> <@renderFormatFieldRowClose /> <@renderFormatFieldRowOpen /> <@renderFormatFieldRowTitleCellOpen style="" /> <@renderFormatEmptySpace /> <@renderFormatFieldRowTitleCellClose /> <@renderFormatFieldRowWidgetCellOpen positionSpan=1 style="" /> <@renderSubmitField buttonType="button" className="smallSubmit" alert="false" formName="FindCategory" title="" name="submitButton" event="" action="" imgSrc="" containerId="" confirmation ="" ajaxUrl="" /> <@renderTooltip tooltip="" tooltipStyle="" /> <@renderFormatFieldRowWidgetCellClose /> <@renderFormatFieldRowClose /> <@renderFormatSingleWrapperClose formName="FindCategory"/> <@renderFormClose focusFieldName="" formName="FindCategory" containerId="FindCategory" hasRequiredField="" /> <@renderScreenEnd /> 我想信,如果我们直接把以上这些语句写在一个ftl的文件中,那么大家一看都就明白了,现在ofbiz所作的工作,只是通过根据xml来运态的生成这些语句而已。 有了以上这些freemarker宏的调用语句还是不购的。还需要定义这些宏,这些宏是freemarker的语法要求的。在ofbiz的framwork目录下的widget组件下widget\templates中定义了很多种类形的宏模板,这些模板又通过widget.properties进行了配置。至此我们知道,如果我们想在改变最后from的展示,我们可以通过修改这些宏模板,即可以实现。另外,因为模板是通过widget.properties配置的,我们基于可以开发自己的模板,然后通过修改widget.properties中的配置,我们即可以方便的实现替换了。 除此之外,在widget\templates下定义了多种类型的模板,可以有生成html的,pdf的,xml的。也就是说,我们可以让ofbiz生成我们想要的任何表达方式。需要说明的是除了html 之外,ofbiz的基它模板,现在还不成熟。在使用的过程中很可能会遇到不少错误,不过只要你愿意去调一下代码,相信很快可以解决的。 |
- 浏览: 1763202 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
发表评论
-
ofbiz导入eclipse后源码启动
2015-01-21 11:35 8921、首先执行ant build 2、解决包冲突和class ... -
ofbiz促销引擎学习
2015-01-07 23:59 2872ofbiz促销引擎基本上是按照满足什么条件,执行什么动作这样 ... -
ofbiz:设立sql语句在控制台的输出
2014-12-19 23:36 1065ofbiz:设置sql语句在控制台的输出 为研究ofbiz ... -
如何让OFBIZ使用中文界面
2014-10-12 00:49 1070Ofbiz默认使用的是英文 ... -
ofbiz权限判断语法整理
2014-10-11 13:59 717用户的权限都是以权限组来分配的:相关的几个表如下:securi ... -
ofbiz之 entity 实体解析
2014-10-11 13:57 1249ofbiz 之entity实体1. 实体定义文件实体定义文件一 ... -
OFBiz 的中文乱码解决方案
2014-10-11 13:54 840OFBiz开发时遇到乱码的问题,MySQL数据库插入中文数据 ... -
OFBIZ中显示包含HTML标记的内容
2014-10-11 13:52 739在OFBIZ中,出于安全性的考虑,所以动态的内容输出到前台时都 ... -
如何查看OFBIZ生成的SQL
2014-10-11 13:47 932查看SQL语句:在OF中通过实体来进行数据的维护。将SQL隐 ... -
ofbiz的webservice接口提供(1)-WSDL的生成
2014-09-22 23:49 1600ofbiz的service:这个是ofbiz赖以骄傲的设计方 ... -
ofbiz切换到mysql,load-demo数据后,更新个公司名称报错
2014-09-16 20:23 1150报错: 控制台报错 ---- stack trace ... -
ofbiz切换到mysql
2014-09-15 19:26 1477ofbiz自带的数据库是Derby,以下列出如何将ofbiz ... -
ofbiz12.04环境搭建
2014-09-04 16:32 1208一、软件必备: 1、jdk1.6下载地址 http:// ... -
OFBIZ--对数据库的操作(转)
2014-09-03 14:10 1188/** * 功能:取得demo信息列表 * @p ... -
Widget小窗口和Decorator装修器的使用
2014-08-08 16:44 620ofbiz中的Widget小窗口和Decora ... -
ofbiz之entity实体写法
2014-07-11 08:42 5291实体定义文件 实体定义文件一般存放位置是在对应模块的ent ... -
ofbiz之entity 实体解析
2014-05-25 10:32 659ofbiz 之entity实体 1. 实体定义文件 实体定义文 ... -
ofbiz_screen_widget_cookbook
2014-05-21 18:59 1592THE SCREEN-WIDGET COOKBOOK = ... -
screen widget 框架页面生成原理初探
2014-05-21 18:59 753v: screen widget 本质是基于freema ... -
ofbiz的form网下资料总结
2014-05-20 23:38 1414ofbiz form中下拉列表的代码 • <field ...
相关推荐
Ofbiz,全称为The Open For Business Project,是一个开源的企业应用框架,主要由Apache软件基金会维护。这个项目旨在提供一套全面的、可扩展的企业级应用程序解决方案,涵盖了电子商务、供应链管理、客户关系管理等...
Apache Ofbiz是一个开源的企业应用框架,它为构建复杂的业务应用程序提供了全面的功能,包括供应链管理、电子商务、财务会计、人力资源等。对于初学者来说,理解Ofbiz的基本架构和工作原理是至关重要的。 Ofbiz的...
标题中的"ofbiz10.04表结构"指的是OFBiz 10.04版本的数据模型设计,这是企业级开源应用框架OFBiz的一个重要组成部分。OFBiz全称为Open For Business Project,它是一个用于构建企业应用程序的全面业务解决方案,涵盖...
Ofbiz 安装与配置指南 Ofbiz 是一个基于 Java 的开源企业级电子商务平台,提供了强大的电子商务解决方案。为了帮助初学者快速上手 Ofbiz,我们将详细介绍 Ofbiz 的安装与配置过程。 环境搭建 在开始安装 Ofbiz ...
OFBiz 开发手册 OFBiz 是一个基于 Java 的开源电商平台,旨在提供一个灵活、可扩展、可配置的电商解决方案。本文档将作为一个 OFBiz 的入门教材,主要介绍 OFBiz 的环境搭建、安装以及用一个简单的应用作为例子介绍...
4. 部署Ofbiz:将生成的WAR文件部署到你的Web服务器上,例如将`ofbiz.war`复制到Tomcat的webapps目录下,然后启动服务器。 5. 运行Ofbiz:在浏览器中输入`http://localhost:8080/ofbiz`,如果一切顺利,你应该能...
《OFBiz API 开发文档详解》 在信息技术领域,OFBiz(Open For Business Project)是一个开源的企业级应用框架,主要用于构建复杂的电子商务系统。OFBiz 提供了一整套全面的业务组件,涵盖了从供应链管理到客户关系...
根据给定的文件信息,以下是关于Apache OFBiz开发的知识点: 1. OFBiz介绍与安装:OFBiz是一个开源的企业自动化软件套件,它提供了构建企业应用程序所需的各种功能,比如电子商务、订单处理等。文件中提到了2008年...
在提供的OFBIZ_Demo压缩包中,用户可以找到OfBiz的演示版本,这是一套预配置的环境,展示了OfBiz在实际业务场景下的功能和操作。这个演示通常包括以下部分: 1. **安装与配置**:压缩包可能包含了安装指南和配置...
### Apache OFBiz Cookbook 知识点解析 #### 一、Apache OFBiz 概述 - **定义**:Apache OFBiz(Open For Business)是一款开源的企业级应用框架,它集成了ERP(企业资源规划)、CRM(客户关系管理)以及E-...
《OFBIZ开发指南》是一本专为开发者设计的详细教程,主要针对OFBIZ(Open For Business Project)这一开源企业应用平台。OFBIZ是一个基于Java的企业级应用框架,旨在提供一系列完整的业务功能,包括供应链管理、电子...
【OFBiz Git 服务搭建详解】 OFBiz是一个开源的企业级应用框架,主要用于构建和管理电子商务系统。本教程将详细介绍如何在本地环境中搭建OFBiz项目,并使用Git进行版本控制。 首先,确保你拥有以下基础环境: 1. ...
在本教程中,我们将深入探讨如何入门Apache Ofbiz的开发,这是一个开源的企业级应用框架,专为电子商务、供应链管理和企业资源规划等业务流程设计。Ofbiz提供了强大的组件化架构,使得开发者可以方便地构建和扩展...
Ofbiz会根据这些定义自动生成对应的数据库表,并动态地生成相应的Java对象,用于应用程序中的数据处理。这样一来,开发人员只需关注业务逻辑的实现,Ofbiz会自动处理所有与数据库交互的细节。 #### 二、Ofbiz 的...
里面是下载地址,如果逆向开发ofbiz,只要下载它就绝对没错了 Apache+OFBiz+开发初学者指南.rar OFBiz开发快速入门.rar OFBiz-技术文档.rar OFBiz API中文版.rar Apache OFBiz Cookbook Sep 2010.rar Opentaps ...
《OFBiz经典入门教程加速度编写》是一篇针对开源企业应用框架OFBiz的入门教程,旨在帮助初学者快速掌握OFBiz的基本使用和开发技巧。OFBiz(Open For Business Project)是一个全面的企业级业务应用程序框架,它由...
5. **定制化开发**:为了适应具体企业的业务需求,可能进行了针对特定场景的定制开发,比如特定报表的生成、特定业务流程的自动化等。 6. **数据同步**:OpenCMS可能被配置为定期或实时从OFBiz获取数据,如产品信息...
《OFBiz数据结构设计详解》 OFBiz,全称为Open For Business Project,是一个开源的企业级应用框架,主要用于构建和管理电子商务、供应链管理、客户关系管理等业务系统。OFBiz的数据结构设计是其核心组成部分,它...
【OFBIZ快速入门】 OFBiz,全称Open For Business Project,是一个开源的企业级应用框架,专注于电子商务和业务流程管理。OFBiz旨在提供一个全面、可扩展且灵活的解决方案,适用于各种规模的企业。本篇文章将带你...
而组件则将相关的实体和服务打包,形成了可重用的模块。 首先,书中会详细介绍如何安装和配置Ofbiz环境,包括下载Ofbiz源码、搭建开发环境、启动服务器等步骤。这部分内容对于初学者来说至关重要,因为一个正确且...