扩展hello1 应用 creen-widget, decorator, and actions,练习hello2应用.
1.拷贝hello1 到 hello2 改名 webapp下hello1为 "hello2" 并修改ofbiz-component.xml文件.修改后内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<ofbiz-component name="hello2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/ofbiz-component.xsd">
<resource-loader name="main" type="component"/>
<webapp name="hello2"
title="My First OFBiz Application"
server="default-server"
location="webapp/hello2"
mount-point="/hello2"
app-bar-display="false"/>
</ofbiz-component>
2.创建Screens
在hello2\webapp\hello2目录下创建includes目录,此目可以放页面的公共部分.如页头和页脚等.
页头:headers.ftl 可以定义共用的样式.图片...
页脚:footers.ftl 可以定义页面的版权信息...
在hello2\webapp目录下创建widget目录,在hello2\widget下创建HelloScreens.xml Screens定义xml文件.
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains screens for the Team section -->
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="main-section-decorator">
<section>
<widgets>
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/includes/headers.ftl"/></html>
</platform-specific>a
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/main.ftl"/></html>
</platform-specific>
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/includes/footers.ftl"/></html>
</platform-specific>
</widgets>
</section>
</screen>
</screens>
3. 修改controller.xml文件修改后的内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/site-conf.xsd">
<description>Second Hello World Site Configuration File</description>
<owner>My Project (c) 2010 </owner>
<errorpage>/error/error.jsp</errorpage>
<handler name="java" type="request" class="org.ofbiz.webapp.event.JavaEventHandler"/>
<handler name="soap" type="request" class="org.ofbiz.webapp.event.SOAPEventHandler"/>
<handler name="service" type="request" class="org.ofbiz.webapp.event.ServiceEventHandler"/>
<handler name="service-multi" type="request" class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/>
<handler name="simple" type="request" class="org.ofbiz.webapp.event.SimpleEventHandler"/>
<handler name="ftl" type="view" class="org.ofbiz.webapp.ftl.FreeMarkerViewHandler"/>
<handler name="jsp" type="view" class="org.ofbiz.webapp.view.JspViewHandler"/>
<handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/>
<handler name="http" type="view" class="org.ofbiz.webapp.view.HttpViewHandler"/>
<preprocessor>
<!-- Events to run on every request before security (chains exempt) -->
<!-- <event type="java" path="org.ofbiz.webapp.event.TestEvent" invoke="test"/> -->
<event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="checkExternalLoginKey"/>
</preprocessor>
<postprocessor>
<!-- Events to run on every request after all other processing (chains exempt) -->
<!-- <event type="java" path="org.ofbiz.webapp.event.TestEvent" invoke="test"/> -->
</postprocessor>
<!-- Request Mappings -->
<request-map uri="main">
<response name="success" type="view" value="main"/>a
</request-map>
<!-- end of request mappings -->
<!-- View Mappings -->
<view-map name="error" page="/error/error.jsp"/>
<view-map name="main" type="screen" page="component://hello2/widget/HelloScreens.xml#main"/>
<!-- end of view mappings -->
</site-conf>
4.打开浏览器,访问http://localhost:8080/hello2/control/main,可以看到新的应用页面.
5.Decorating Your Page装饰页面.
例如:想创建内处相同页头和页脚的页面,screen-widget 允许我们创建多个页面重用同一显示元素.
首先:在controller.xml文件中定义多个requests 和 views
如:
<!-- Request Mappings -->
<request-map uri="main">
<response name="success" type="view" value="main"/>a
</request-map>
<request-map uri="news">
<response name="success" type="view" value="news"/>a
</request-map>
<!-- end of request mappings -->
<!-- View Mappings -->
<view-map name="error" page="/error/error.jsp"/>
<view-map name="main" type="screen" page="component://hello2/widget/HelloScreens.xml#main"/>
<view-map name="news" type="screen" page="component://hello2/widget/HelloScreens.xml#news"/>
<!-- end of view mappings -->
其次:在screen-widget XML 文件中添加新的面页和屏幕.
<@ofbizUrl>标记在headers.ftl 文件中.生成url.
headers.ftl文件如下:
<s>页面头...</s>
<a href="<@ofbizUrl>/main</@ofbizUrl>">首页</a>
<a href="<@ofbizUrl>/news</@ofbizUrl>">新闻</a>
<hr>
news.ftl文件内容如下:
<html>
<head>
<title>Hello World - news</title>
</head>
<body>
<h1>news</h1>
<p>news page start ...............!</p>
</body>
</html>
HelloScreens.xml 文件修改如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains screens for the Team section -->
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="commonDecorator">
<section>
<widgets>
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/includes/headers.ftl"/></html>
</platform-specific>a
<decorator-section-include name="body"/>
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/includes/footers.ftl"/></html>
</platform-specific>
</widgets>
</section>
</screen>
<screen name="main">
<section>
<widgets>
<decorator-screen name="commonDecorator">
<decorator-section name="body">
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/main.ftl"/></html>
</platform-specific>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="news">
<section>
<widgets>
<decorator-screen name="commonDecorator">
<decorator-section name="body">
<platform-specific>
<html><html-template location="component://hello2/webapp/hello2/news.ftl"/></html>
</platform-specific>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
</screens>
6.Adding Actions 添加Actions
现在是基于静态站点的页面.下一步是要混合动态内容.
在你的WEB-INF目录下创建actions目录.可以加入一些如beanshell script 等脚本. 略..
参照:http://www.opensourcestrategies.com/ofbiz/hello_world2.php学习
分享到:
相关推荐
ofbiz很好的学习资料,学习了很多,希望对你也能有帮助!
ofbiz的helloworld例子,网上不好找到比较全的,这个比较全,可以了解ofbiz的整体架构和运行机制。
NULL 博文链接:https://lmzf.iteye.com/blog/575969
ofbiz电商框架hello与皮肤定制实例,实现自定义自己的所有主题,包括菜单与内容区域,
与hello资源结合使用,这是一个html5后台管理的模块,但实现了ofbiz主题针对具体应用的深度定制方法,里面只有一个页面,但基本思路已经包括在里面,希望大家能不断挖掘
自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,适合初学者,可以下个看看
ofbiz API,学习ofbiz的朋友一定不能少
OFBIZ开发指南 英文2OFBIZ开发指南 英文2OFBIZ开发指南 英文2
OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门
ofbiz jar file, some jars for ofbiz
小谈ofbiz学习,发展历史,学习体验和心得,以及ofbiz与其他框架的不同之处
Apache OFBiz Datamodel 2
ofbiz 官网文档翻译 ,按照此文档里面的步骤,可以安全快速的编译自己的第一个小模块 "Hello World",一开始是很抵触的,但是学着学着发现其实框架道理是相似的,为了将代码解耦,每个框架都有自己的独特解耦之道和...
Ofbiz开发快速入门.pdf.源码:hello.rar
ofbiz一个完整例子,ofbiz学习实战例子.
ofbiz入门图文讲解,包括入门helloworld 和使用ofbiz 新建实体 操作数据库对实体增删改查
非常详细的ofbiz 学习文档.doc,公开给大家学习
OFBiz集成Spring和Activiti,详细设计说明书。ofbiz版本12.04
ofbiz数据结构
ofbiz sql 表结构