<?xml version="1.0" encoding="UTF-8"?> <forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ofbiz.apache.org/Widget-Form" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Form http://ofbiz.apache.org/dtds/widget-form.xsd"> <!--定义一个表单,属性有这个表单的类型,请求地址,默认实体名 默认的map集合名--> <form name="" type="" target="" default-entity-name="" default-map-name="" default-table-style=""> <!--表单内的输入框等,一个field对应一个--> <field name="" title=""> <!--输入框的类型,input.text hyperlink,drop-down等--> <text/> </field> <field name="" title=""> <check all-checked=""/> </field> </form> </forms>新建一个组件,使用gradle 命令
gradlew createPlugin -PpluginId=sword -PpluginResourceName=Sword -PwebappName=sword -PbasePermission=SWORD
这个命令的详细介绍,可以阅读ofbiz项目中的README.md文件中的了解。
创建之后目录如下:
使用命令创建的组件默认是在specialpurpose下,这个目录与hot-deploy目录都是存放组件的目录,
两者的区别就在于specialpurpose目录有图中component-load.xml文件,如图:
如果我们将创建的组件移动到hot-deploy目录下则不需要添加该文件就可以加载组件。
进入模块后,ofbiz-component.xml文件,该文件中定义了项目启动时,加载该组件时,需要加载的文件。
<?xml version="1.0" encoding="UTF-8"?> <ofbiz-component name="sword" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd"> <!--定义资源加载器--> <!-- define resource loaders; most common is to use the component resource loader --> <resource-loader name="main" type="component"/> <!-- 加载config和dtd目录的配置文件--> <!-- place the config directory on the classpath to access configuration files --> <classpath type="dir" location="config"/> <classpath type="dir" location="dtd"/> <!-- 加载jar包,在build目录中的lib文件夹中的jar包,在lib目录中的jar包 --> <!-- load single or multiple external libraries --> <classpath type="jar" location="build/lib/*"/> <classpath type="jar" location="lib/*"/> <!--加载该组件中定义的实体文件--> <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/> <!-- <entity-resource type="eca" reader-name="main" loader="main" location="entitydef/eecas.xml"/> --> <!-- 加载数据文件 --> <entity-resource type="data" reader-name="seed" loader="main" location="data/SwordTypeData.xml"/> <entity-resource type="data" reader-name="seed" loader="main" location="data/SwordSecurityPermissionSeedData.xml"/> <entity-resource type="data" reader-name="demo" loader="main" location="data/SwordSecurityGroupDemoData.xml"/> <entity-resource type="data" reader-name="demo" loader="main" location="data/SwordDemoData.xml"/> <!--加载service文件--> <!-- service resources: model(s), eca(s) and group definitions --> <service-resource type="model" loader="main" location="servicedef/services.xml"/> <!-- <service-resource type="eca" loader="main" location="servicedef/secas.xml"/> <service-resource type="group" loader="main" location="servicedef/groups.xml"/> --> <test-suite loader="main" location="testdef/SwordTests.xml"/> <!-- web applications; will be mounted when using the embedded container --> <!-- web应用配置 name 为该组件名, base-permission为访问的权限, mount-point为组件访问的路径,如果为/就是输入https:localhost:8443直接访问 --> <webapp name="sword" title="Sword" server="default-server" location="webapp/sword" base-permission="OFBTOOLS,SWORD" mount-point="/sword"/> </ofbiz-component>
当在浏览器中输入https://localhost:8443/sword回车访问该组件时,
因为在sword/webapp/sword/index.html文件中定义的一句代码,
访问会重定向到:https://localhost:8443/sword/control/main,该文件中只定义了一句话:
<%response.sendRedirect("control/main");%>
不过在单独模块中该语句好像不能用。因为我改了没作用,不知道为啥!
因为在新建组件时,web.xml文件会自动创建,所以这里就不再说明了。
接着是接受请求并指定跳转的controller.xml文件
该文件路径为:sword/webapp/sword/WEB-INF/controller.xml.
<?xml version="1.0" encoding="UTF-8"?> <site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ofbiz.apache.org/Site-Conf" xsi:schemaLocation="http://ofbiz.apache.org/Site-Conf http://ofbiz.apache.org/dtds/site-conf.xsd"> <!-- The controller elements that are common to all OFBiz components can be found in the following xml file. A component can override the elements found in the common-controller.xml file. --> <!--引入其他的controller.xml文件--> <include location="component://common/webcommon/WEB-INF/common-controller.xml"/> <description>Sword Component Site Configuration File</description> <!-- Events to run on every request after all other processing (chains exempt) --> <!-- <postprocessor> <event name="test" type="java" path="org.apache.ofbiz.webapp.event.TestEvent" invoke="test"/> </postprocessor> --> <!--接受请求,请求的路径只有在这里配置才会响应或跳转--> <!-- Request Mappings --> <request-map uri="main"> <!--权限安全设置,这两个属性代表是否使用https,和是否需要登录,需要登录的话, 请求这个uri的话会要求登录--> <security https="true" auth="true"/> <!--请求成功后的响应--> <response name="success" type="view" value="main"/> <!--请求失败后的响应--> <response name="error" type="view" value="main"/> </request-map> <!--根据请求中定义的response的value值对应,一个view-map可能有多个response指向--> <!-- View Mappings --> <view-map name="main" type="screen" page="component://sword/widget/SwordScreens.xml#main"/> </site-conf>
配置国际化信息的SwordUiLabels.xml,路径是sword\config\SwordUiLabels.xml,
<?xml version="1.0" encoding="UTF-8"?> <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd"> <property key="SwordApplication"> <value xml:lang="en">Sword Application</value> <value xml:lang="zh">Sword应用程序</value> <value xml:lang="zh-TW">Sword應用程式</value> </property> <property key="SwordCompanyName"> <value xml:lang="en">OFBiz: Sword</value> <value xml:lang="zh-TW">OFBiz: Sword</value> </property> <property key="SwordCompanySubtitle"> <value xml:lang="en">Part of the Apache OFBiz Family of Open Source Software</value> <value xml:lang="it">Un modulo della famiglia di software open source Apache OFBiz</value> <value xml:lang="zh">开软件OFBiz的组成部分?</value> </property> <property key="SwordViewPermissionError"> <value xml:lang="en">You are not allowed to view this page.</value> <value xml:lang="zh">不允许你浏览这个页面?</value> </property> </resource>
存放权限数据,权限组数据的文件,这些文件的数据一半是让我们来导入的,不会让我们去编辑。
最后是最主要的显示用的screen文件,
⒈定义组件中菜单screen的文件SwordMenus.xml
<?xml version="1.0" encoding="UTF-8"?> <menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ofbiz.apache.org/Widget-Menu" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Menu http://ofbiz.apache.org/dtds/widget-menu.xsd"> <menu name="MainAppBar" title="${uiLabelMap.SwordApplication}" extends="CommonAppBarMenu" extends-resource="component://common/widget/CommonMenus.xml"> <!--定义一个叫做main的菜单按钮,嵌套的link标签是该菜单按钮的跳转uri, 会由controller.xml文件接收--> <menu-item name="main" title="${uiLabelMap.CommonMain}"> <link target="main"/> </menu-item> </menu> </menus>
⒉定义在页面中使用的form表单SwordForms.xml
<?xml version="1.0" encoding="UTF-8"?> <forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ofbiz.apache.org/Widget-Form" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Form http://ofbiz.apache.org/dtds/widget-form.xsd"> <!--定义一个表单,属性有这个表单的类型,请求地址,默认实体名 默认的map集合名--> <form name="" type="" target="" default-entity-name="" default-map-name="" default-table-style=""> <!--表单内的输入框等,一个field对应一个--> <field name="" title=""> <!--输入框的类型,input.text hyperlink,drop-down等--> <text/> </field> <field name="" title=""> <check all-checked=""/> </field> </form> </forms>⒊定义该组件公共装饰器的文件,CommonScreen.xml
相关推荐
OFBiz,全称为Open For Business Project,是一个开源的企业应用框架,用于构建企业级的电子商务、供应链管理和CRM等复杂业务系统。本示例将带你逐步了解如何在OFBiz中创建一个完整的应用实例,从实体创建到服务定义...
OFBiz API中文版.chm文件是一个典型的Windows帮助文档,其中详细列举了OFBiz的所有服务、组件、实体以及相关的API接口。文档通常包含以下部分: - **服务**:描述了OFBiz中的服务接口,如订单处理、库存管理等。 ...
2. "ofbiz10.04表结构.pdm":PDM(Physical Data Model)通常是一个图形化的数据库模型表示,可能展示了OFBiz 10.04版本的表结构,包括各个表的物理布局、字段、主键和外键关系。这种可视化工具对理解数据库设计非常...
OFBIZ是一个基于Java的企业级应用框架,旨在提供一系列完整的业务功能,包括供应链管理、电子商务、客户关系管理、财务管理等。本指南深入浅出地讲解了如何利用OFBIZ进行开发,帮助开发者理解和掌握其核心概念和技术...
每个OFBiz组件都有自己的`component.xml`,它定义了组件的元数据,包括资源路径、服务、事件、视图等。组件是OFBiz模块化设计的基础,允许开发者独立开发和部署特定的功能。 6. **site-conf.xml**: 这个文件配置...
OfBiz,全称为The Apache Open For Business Project,是一个开源的企业应用套件,旨在为企业提供一套完整的业务自动化解决方案。这个项目由Apache软件基金会维护,遵循Apache 2.0许可证,因此它不仅免费,而且拥有...
总之,Apache OFBiz是一个功能强大的企业级应用框架,对于希望从事电子商务、ERP或CRM系统开发的初学者来说,理解其架构和组件至关重要。通过深入研究提供的资源和实践项目,你将能够逐步掌握这个强大的工具并开发出...
OFBiz,全称为Open For Business Project,是一个开源的企业级应用框架,主要用于构建和管理复杂的业务流程。它提供了一个全面的、可扩展的、基于服务的架构,支持电子商务、供应链管理、客户关系管理等多个领域。在...
- **OFBiz工作区简介**:介绍OFBiz项目的结构及基本文件组织方式。 - **安装Java开发工具包(JDK)**: - **下载JDK 5.0**:提供官方下载链接。 - **安装JDK 5.0**:给出安装过程中的注意事项及常见问题解决方案...
3. **组件开发**:学习如何创建一个新的组件,以及组件中的主要文件如`ofbiz-component.xml`的用途。 4. **实体模型**:解释OFBiz中实体模型的概念及其作用。 5. **服务定义和服务调用**:如何定义服务并从其他组件...
- **应用程序目录(applications)**:这是存放OFBiz各个应用程序的地方,每个应用程序作为一个独立的组件存在。 - **会计模块(accounting)** - **内容管理(content)** - **电子商务(ecommerce)** - **...
OFBiz,全称Open For Business Project,是一个开源的企业级应用框架,专注于电子商务、供应链管理和企业资源规划(ERP)等业务场景。本文将深入探讨OFBiz中的核心设计模式——Model-View-Controller(MVC),以及它...
- **2.2.2.2 pushUserIdentifier**:检查请求是否关联了一个已登录用户,如果是,则将该用户的信息添加到`userIdentifierStack`(一个`ThreadLocal`变量)中,便于后续处理中快速获取用户信息。 - **2.2.2.3 ...
Apache OFBiz是一个开源的企业应用框架,它提供了构建和管理企业级业务应用程序的全面工具集。这个"ofbiz例子practice"是OFBiz的一个实践项目,旨在帮助用户了解如何使用OFBiz来开发和运行实际的应用程序。在实践中...
提供的"opentaps 架构图.vsd"文件,是一个Visio绘制的OpenTaps和OfBiz架构的详细图表,清晰展示了各个组件之间的关系和交互流程。通过这个图表,你可以直观理解不同层的功能,以及它们如何协同工作来实现整个系统的...
OfBiz的架构图可能显示了其各个服务组件的层级关系,以及如何通过服务组件模型(Service Component Architecture, SCA)实现解耦和复用。而OpenTags的架构图则可能展示了标签库的结构,以及如何在JSP解析过程中调用...
在OFBiz学习过程中,了解其URL处理机制以及Screen配置是非常基础且重要的环节。OFBiz是一个开源的企业级应用框架,...在后续的学习中,你还需要了解更多的OFBiz组件,如服务引擎、工作流系统等,以构建完整的业务流程。
ofbiz_cn.doc可能是一个中文版的OFBIZ用户指南,详细介绍了OFBIZ的功能特性和操作指南,对于中国开发者来说,中文文档无疑能降低学习门槛。在OFBIZ的使用过程中,理解其工作流程,如商品管理、订单处理和支付集成等...
在IT行业中,Open For Business(OFBiz)是一个高度可扩展且功能丰富的开源企业应用框架,主要用于构建电子商务、供应链管理、客户关系管理等多种业务系统。OSGi(Open Services Gateway Initiative)则是一种模块化...
Java Offbiz是一个开源的电子商务平台,它基于Java技术构建,为各类企业和组织提供了一套全面的网上业务解决方案。Offbiz的全称为Open For Business Project,它涵盖了从订单管理、产品目录到供应链管理等多个核心...