- 浏览: 728976 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
一剪梅:
关于您对于 hasRolePermission 用法的解释, ...
OFBIZ安全性技术(翻译) -
沈寅麟:
数据模型资源手册卷3中文版出版了 -
donaldjohn:
恭喜恭喜, 预祝大卖
数据模型资源手册卷3中文版出版了 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz入门实训教程 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz促销码生成解释
Extending your web app with screen-widget, decorator, and actions
扩展你的web app以screen-widget, decorator, and actions
by Si Chen
现在你做了你 第一个Web应用程序. 在现实的世界,你大概会创建具有许多的应用和执行许多任务的页面。 OFBiz screen-widget允许你创造一起许多web app的片断 (“装饰器模式”)并且进行执行。例如:收集和分析数(“actions.”)
在本指南中,点击所有图象扩大它。
在本指南,我们将延伸 Hello World 1 到第二种应用, hello2。 第一步先复制hello1入hello2和更改“hello1” webapp的名字到“hello2”,并且在他的ofbiz-component.xml作相应的修改 :
Creating Screens创建屏幕
OFBiz screen-widget使用汇集复杂页与显示元件许多更小的片断。 (如果您使用了OFBiz的 更早的版本,它替换JPublish和regions框架。)
第一步将在您的webapp并且创建includes/目录和文件headers、 footers。 如果您想要使用通用的 stylesheet和graphics,这是使用它最好的地方。 您也可以想要从main.ftl去除同一个代码:
The second step is to stitch these pieces together using the screen-widget. Create a widget/ directory inside hello2/, next to webapp/. Inside widget/, create an XML file to define your screens:
第二步使用screen-widget并把他们拼接起来。 在hello2/里面的webapp/旁边创建一个widget/目录。 在widget/里面,创造一个XML文件定义你的页面:
sichen@linux:~/eclipse/workspace/ofbiz/hot-deploy/hello2> ls -l
total 4
-rw------- 1 sichen users 1747 2005-06-09 16:28 ofbiz-component.xml
drwxrwxr-x 3 sichen users 72 2005-06-09 16:07 webapp
drwxr-xr-x 2 sichen users 80 2005-06-09 17:02 widget
sichen@linux:~/eclipse/workspace/ofbiz/hot-deploy/hello2> ls -l widget/
total 4
-rw-r--r-- 1 sichen users 720 2005-06-09 17:02 HelloScreens.xml
The simplest screen definition is one which puts together several ftl pages together:
最简单的screen定义是把几个ftl页面汇集到一起:
印刷错误:上面的图片是screen-widget使用更旧的DTD,而不是正确xmlns。 这在下载里面被改正了。
最后一步,是在你的控制器中关联screen的定义而不是直接使用Freemarker模板
现在我们开始,当你键入
http://localhost:8080/hello2/control/main
在你的浏览器中,你将得到这个
通过多个片段装饰页面,screen-widget帮助你可以建立更加复杂的应用程序。
装饰你的页面
装饰器模式允许你使用许多不同的部分来组成页面,也允许你在多个页面中重复利用那些部分。 例如,你能有表头、导航条、新闻区、提议和底部信息等多个片段。
例如,假设您想创建几页内容不同使用同一个header和footer。 screen-widget允许你通过创建多个页面重复利用同一个显示元件。 开始,我们首先在controller.xml创造多个请求和视图:
下一步,我们创建其他的页面和screens。 在screen-widget XML文件中,你能复制每个screen定义和修改main.ftl到你的页面。
在页面的式样,您不必再添加新的元素。
注意 <@ofbizUrl>标签在header.ftl (底部。)这是用于产生您的URL。 这些页面类似这样。
当你构建大一些的站点,然而,重复布局命令是一个维护问题。 幸运地, OFBiz screen-widget允许你定义可以被多个屏幕重复利用的模板。 您通过宣称a做此 在模板屏幕里面(通常称“CommonDecorator”)。 然后,在您的其他屏幕,您参考模板屏幕与a并且宣称他们自己的内容与标记。 这是什么它将看似:
引起的网页看同以前一样。 如果,然而,您在所有页得到了请求投入一个法律声明,它是一样简单的象modifiying CommonDecorator的布局。
增加Actions
现在你可以看到使用OFBiz构建静态站点。 下一步,将添加动态的内容。 一般情况下,大多数web脚本允许你直接在页面内写代码。 Freemarker也允许你这样作,把一个日期放在header里。 但是Freemarker的作者不建议你这样作,因为他们感到它将导致过度复杂的页面。
OFBiz通过分离布局避免这个问题从行动或代码,会集并且准备数据。 由网页的个别行动和介绍,您能允许用不同的技能的分开的人(编程对设计)在网页工作。 您能也重复利用同一个代码为引起多个看法,例如网页或同一个内容的PDF。
要做到这点,你首先要创建一个actions/目录在你的WEB-INF目录里面。 然后你将进入action写beanshell脚本。 这里beanshell脚本是很象Java servlet,只有它被输入并且动态地被解释(而不是被编译。),如果您想要把对象返回显示到Freemarker页面,您可以将他们放入“上下文”的Map。 最后,你会需要展示这个action在你的screen,我这里创建了一个新的:
我在controller.xml里创建一个模型为他。
这里有很多。 在HelloScreens.xml,你创建一个screen使用people.ftl和people.bsh,这是一个数据展示的screen。 people.bsh是一个简单的得到delegator的脚本,查找所有人员,然后把他们放入map。 (OFBiz把delegator放入请求。)最后,在底部, people.ftl显示所有名字。 (这是一个Freemarker句法的好例子。)这些你都将看见。
也有一种直接在screen-wdiget使用<entity-one>方式,而不需要写一些分散的脚本和Java代码。 这点我就讲这些,希望你可以深入了解。
是否因为有delegator对象,你可以直接读写数据库并且把你所有的业务逻辑写在.bsh脚本中?答案是可以,但是不建议这样做,为了更大的应用。 实际上,从来没有这样的OFBiz应用程序。
总结
这是给你关于怎样用OFBiz建立Web应用程序一种基本思想。 有许多工具帮助您,并且我仅仅是介绍它。你可以在现有的OFBiz应用程序基础上做的更多。
其中一个非常有用的工具是form widget,它可以根据你的数据模型的属性自动生成页面和业务逻辑。 看见这wiki page页面以获得更多信息。
Download下载
您能下载本指南代码,并且在hot-deploy目录执行。
扩展你的web app以screen-widget, decorator, and actions
by Si Chen
现在你做了你 第一个Web应用程序. 在现实的世界,你大概会创建具有许多的应用和执行许多任务的页面。 OFBiz screen-widget允许你创造一起许多web app的片断 (“装饰器模式”)并且进行执行。例如:收集和分析数(“actions.”)
在本指南中,点击所有图象扩大它。
在本指南,我们将延伸 Hello World 1 到第二种应用, hello2。 第一步先复制hello1入hello2和更改“hello1” webapp的名字到“hello2”,并且在他的ofbiz-component.xml作相应的修改 :
Creating Screens创建屏幕
OFBiz screen-widget使用汇集复杂页与显示元件许多更小的片断。 (如果您使用了OFBiz的 更早的版本,它替换JPublish和regions框架。)
第一步将在您的webapp并且创建includes/目录和文件headers、 footers。 如果您想要使用通用的 stylesheet和graphics,这是使用它最好的地方。 您也可以想要从main.ftl去除同一个代码:
The second step is to stitch these pieces together using the screen-widget. Create a widget/ directory inside hello2/, next to webapp/. Inside widget/, create an XML file to define your screens:
第二步使用screen-widget并把他们拼接起来。 在hello2/里面的webapp/旁边创建一个widget/目录。 在widget/里面,创造一个XML文件定义你的页面:
sichen@linux:~/eclipse/workspace/ofbiz/hot-deploy/hello2> ls -l
total 4
-rw------- 1 sichen users 1747 2005-06-09 16:28 ofbiz-component.xml
drwxrwxr-x 3 sichen users 72 2005-06-09 16:07 webapp
drwxr-xr-x 2 sichen users 80 2005-06-09 17:02 widget
sichen@linux:~/eclipse/workspace/ofbiz/hot-deploy/hello2> ls -l widget/
total 4
-rw-r--r-- 1 sichen users 720 2005-06-09 17:02 HelloScreens.xml
The simplest screen definition is one which puts together several ftl pages together:
最简单的screen定义是把几个ftl页面汇集到一起:
印刷错误:上面的图片是screen-widget使用更旧的DTD,而不是正确xmlns。 这在下载里面被改正了。
最后一步,是在你的控制器中关联screen的定义而不是直接使用Freemarker模板
现在我们开始,当你键入
http://localhost:8080/hello2/control/main
在你的浏览器中,你将得到这个
通过多个片段装饰页面,screen-widget帮助你可以建立更加复杂的应用程序。
装饰你的页面
装饰器模式允许你使用许多不同的部分来组成页面,也允许你在多个页面中重复利用那些部分。 例如,你能有表头、导航条、新闻区、提议和底部信息等多个片段。
例如,假设您想创建几页内容不同使用同一个header和footer。 screen-widget允许你通过创建多个页面重复利用同一个显示元件。 开始,我们首先在controller.xml创造多个请求和视图:
下一步,我们创建其他的页面和screens。 在screen-widget XML文件中,你能复制每个screen定义和修改main.ftl到你的页面。
在页面的式样,您不必再添加新的元素。
注意 <@ofbizUrl>标签在header.ftl (底部。)这是用于产生您的URL。 这些页面类似这样。
当你构建大一些的站点,然而,重复布局命令是一个维护问题。 幸运地, OFBiz screen-widget允许你定义可以被多个屏幕重复利用的模板。 您通过宣称a做此 在模板屏幕里面(通常称“CommonDecorator”)。 然后,在您的其他屏幕,您参考模板屏幕与a并且宣称他们自己的内容与标记。 这是什么它将看似:
引起的网页看同以前一样。 如果,然而,您在所有页得到了请求投入一个法律声明,它是一样简单的象modifiying CommonDecorator的布局。
增加Actions
现在你可以看到使用OFBiz构建静态站点。 下一步,将添加动态的内容。 一般情况下,大多数web脚本允许你直接在页面内写代码。 Freemarker也允许你这样作,把一个日期放在header里。 但是Freemarker的作者不建议你这样作,因为他们感到它将导致过度复杂的页面。
OFBiz通过分离布局避免这个问题从行动或代码,会集并且准备数据。 由网页的个别行动和介绍,您能允许用不同的技能的分开的人(编程对设计)在网页工作。 您能也重复利用同一个代码为引起多个看法,例如网页或同一个内容的PDF。
要做到这点,你首先要创建一个actions/目录在你的WEB-INF目录里面。 然后你将进入action写beanshell脚本。 这里beanshell脚本是很象Java servlet,只有它被输入并且动态地被解释(而不是被编译。),如果您想要把对象返回显示到Freemarker页面,您可以将他们放入“上下文”的Map。 最后,你会需要展示这个action在你的screen,我这里创建了一个新的:
我在controller.xml里创建一个模型为他。
这里有很多。 在HelloScreens.xml,你创建一个screen使用people.ftl和people.bsh,这是一个数据展示的screen。 people.bsh是一个简单的得到delegator的脚本,查找所有人员,然后把他们放入map。 (OFBiz把delegator放入请求。)最后,在底部, people.ftl显示所有名字。 (这是一个Freemarker句法的好例子。)这些你都将看见。
也有一种直接在screen-wdiget使用<entity-one>方式,而不需要写一些分散的脚本和Java代码。 这点我就讲这些,希望你可以深入了解。
是否因为有delegator对象,你可以直接读写数据库并且把你所有的业务逻辑写在.bsh脚本中?答案是可以,但是不建议这样做,为了更大的应用。 实际上,从来没有这样的OFBiz应用程序。
总结
这是给你关于怎样用OFBiz建立Web应用程序一种基本思想。 有许多工具帮助您,并且我仅仅是介绍它。你可以在现有的OFBiz应用程序基础上做的更多。
其中一个非常有用的工具是form widget,它可以根据你的数据模型的属性自动生成页面和业务逻辑。 看见这wiki page页面以获得更多信息。
Download下载
您能下载本指南代码,并且在hot-deploy目录执行。
- ofbiz_hello2.zip (406.8 KB)
- 下载次数: 147
发表评论
-
OFBiz抽取实体引擎和服务引擎思路(1)
2020-03-31 00:39 632# OFBiz抽取实体引擎和服务引擎思路(1) ... -
minilang开发日志书写规范
2019-01-02 10:34 575minilang书写日志5步法 任何一个xml方法中必须 ... -
自动化配置界面表定义思路1.0
2018-11-24 23:21 785总表 path 唯一编码 tableName 表名 ... -
OFBiz前端VUE组件规划
2018-11-10 10:51 1112iasudu.iteye.com 编 号 : ____ ... -
增强OFBiz通用查询方法思路
2018-11-09 17:15 769增强OFBiz通用查询方法思路 <se ... -
OFBiz前后端分离项目代码规范建议2018版
2018-05-11 09:43 1437OFBiz前后端分离项目代码规范建议__build2018 ... -
前端脚手架使用指导
2018-03-02 14:44 7881 安装nodejs https://nodejs.or ... -
RestEventHandler
2018-02-01 23:37 5/**************************** ... -
数据模型资源手册卷3中文版出版了
2017-02-18 11:58 2068我翻译的数据模型资源手册卷3出版了 -
OFBiz促销码生成解释
2014-10-07 22:07 1609OFBiz 我的购物车 输入固定的邀请码实现优惠促销 需要解 ... -
电商基本页面
2014-09-18 20:49 1779<!--StartFragment--> ... -
OFBiz入门实训教程
2014-07-14 14:28 3035加速度 15000850008 大家好,为了ofbiz的 ... -
创建OFBiz的jQuery Mobile入门页面
2014-06-13 14:21 1840jQuery Mobile 框架是一套 ... -
店铺研究
2014-05-23 23:11 1143店铺权限研究,规划如下权限: 分店库存管理权限 分店进货权限 ... -
15天用OFBiz做一个商城管理后台和店铺管理后台
2014-05-03 20:33 4103仅仅是记录一些弟兄们的工作经历。没有吹嘘使用OFBiz使用效率 ... -
一个朋友做OFBiz Crud遇到的问题
2014-01-02 12:55 1793Crud 遇到的问题 问题1:在myeclipse中开发的of ... -
OFBiz的Cache研究
2013-12-30 14:35 2410任何一个cache对象的配置属性都可以在cache.prope ... -
OFBiz同步设置说明和示例
2013-11-23 02:03 1834同步设置说明和示例 使 ... -
OFBiz的Axis2
2013-11-16 23:43 1252很多人都对Axis2的封装和调用苦恼。 今天再次深入精读OFB ... -
How to create a new component
2013-09-21 23:31 1020How to create a new component ...
相关推荐
Vue脚手架是用于快速搭建Vue.js项目的基础架构,它集成了常见的开发工具和配置,以便开发者能够更高效地开始编码。...如果你有定制组件的需求,可以直接联系项目作者,他们应该能根据你的具体需求进行定制开发。
koa-swagger-decorator 使用装饰器自动生成swagger json文档 安装 npm install koa-swagger-decorator 贡献指南 请参考创建PR或发行前。 介绍 Koa Swagger装饰器 使用装饰器自动生成swagger json文档,添加对...
因此,在较新的React项目中,你可以考虑使用`React.PureComponent`替代`pure-render-decorator`,除非你有特殊的需求,比如需要自定义比较逻辑。 总结来说,`pure-render-decorator`是一个为React组件提供性能优化...
npm i -S nuxt-property-decorator 或者 yarn add nuxt-property-decorator Nuxt JS指令 它可以与Nuxt JS一起使用。 Nuxt TS指令 它可以与Nuxt TS一起使用。 装饰和助手 有以下装饰器: Nuxt特定的装饰器 @Off $ ...
@ redtea / craco-parameter-decorator 这个插件将为您的项目设置 。 支持: create-react-app:3.x,4.x craco:5.x,6.x :hammer_and_wrench: 安装 纱 $ yarn add -E @redtea/craco-parameter-decorator NPM...
总结起来,“py-ha-decorator-0.1.0.tar.gz”是一个专注于装饰器的Python库,它旨在为开发者提供高效、易用的工具,以提升代码质量和开发效率。通过深入学习和使用这个库,我们可以更好地理解和利用Python装饰器的...
许可证MIT许可证安装npm i -S vue-property-decorator用法有多个修饰符和1个功能(Mixin):@Prop @PropSync @Model @Watch @Provide @Inject @ProvideReactive @InjectReactive @Emit @Ref @Component(由提供vue-...
eslint-plugin-decorator-position 一个ESlint插件,它提供一组规则以强制一致的装饰器位置 :red_exclamation_mark: 要求 >= 5 >= 8.5 :rocket: 用法1.安装插件yarn add --dev eslint-plugin-decorator-position ...
Java的IO库是一个复杂而强大的系统,其设计思想和实现方式体现了多种设计模式,包括Decorator(装饰者)模式和Adapter(适配器)模式。本文将深入探讨这两个模式在Java/IO中的应用,并通过实例解释它们如何使得Java...
koa-decorator-ts Koa装饰器(带有TypeScript) 安装 npm i koa-decorator-ts --save /* or */ yarn add koa-decorator-ts 介绍 此包装是用于koa的装饰器,包括koa-router graohql。 您可以使用装饰器定义路由路径...
eslint插件使用装饰器 这是eslint的自定义插件,可在方法上强制使用装饰... " use-decorator/use-decorator " : [ 1 , { " params " : [ { " name " : " assertParameter " , " public " : true } ], " methods
Angular-rich-logger-decorator.zip,丰富的记录器类型脚本装饰器,便于编码和调试丰富的记录器装饰器,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计...
Angular-apollo-storybook-decorator.zip,使用Apollo客户端包装您的故事书环境,使用GraphQlapolo故事书装饰器为独立的UI测试提供模拟,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化...
安装npm install react - bind - decorator -- save用法: import reactbind from 'react-bind-decorator' ;@ reactbind ( )class Foo extends React . Component { // Bound boundMethod ( arg , i ) { ... } // ...
西兰花-es7-decorator-jshint-guards 将您的ES7装饰器包装在jshint防护中,以使jshint不会抱怨它(尚未)理解的新语法。安装从NPM: npm install broccoli-es7-decorator-jshint-guards --save-dev西兰花过滤器假设...
npm i -s vue-property-decorator 二,用法 1,@Component(options:ComponentOptions = {}) @Component 装饰器可以接收一个对象作为参数,可以在对象中声明 components ,filters,directives 等未提供装饰器的...