`

ofbiz 一步一步学习hello word (hello2)

阅读更多

扩展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很好的学习资料,学习了很多,希望对你也能有帮助!

    ofbiz电商框架hello主题文件定制

    本主题文件定制教程主要聚焦于如何在OFBiz框架下,对"Hello"主题进行深入的个性化配置,从而提供更符合企业需求的后台管理体验。 "Hello"主题是OFBiz预设的主题之一,设计简洁明了,适合初学者快速上手。在本教程中...

    ofbiz电商框架hello与皮肤定制实例

    总的来说,通过"ofbiz电商框架hello与皮肤定制实例"的学习,开发者可以掌握OFBiz的基础知识,并具备创建自定义主题的能力。这将有助于提升电商平台用户体验,增强品牌识别度,并为后期的系统扩展打下坚实的基础。在...

    ofbiz的helloworld例子

    ofbiz的helloworld例子,网上不好找到比较全的,这个比较全,可以了解ofbiz的整体架构和运行机制。

    Ofbiz 9 :Hello World

    NULL 博文链接:https://lmzf.iteye.com/blog/575969

    ofbiz学习笔记(自学整理)

    文档中提供的"新建 Microsoft Word 文档 (2).docx"和"新建 Microsoft Word 文档.docx"可能是详细的学习笔记或者教程,涵盖了Ofbiz的基础概念、配置步骤、实例分析等内容。建议首先阅读这些文档,以便对Ofbiz有一个...

    OFBIZ开发指南 英文2

    总之,《OFBIZ开发指南》是深入学习和实践OFBIZ开发的宝贵资源,无论你是初学者还是有经验的开发者,都能从中获益匪浅,提升自己的技能水平。通过阅读本书并结合实际项目,你可以熟练掌握OFBIZ的各个层面,从而在...

    ofbiz API,学习ofbiz的朋友一定不能少

    ofbiz API,学习ofbiz的朋友一定不能少

    用OFBiz创建一个完整的应用(翻译hello3)

    2. 创建项目:在OFBiz中创建新应用通常涉及在`ofbiz-component.xml`文件中定义新的组件。在组件目录下,你可以定义服务、实体、页面、国际化资源等。对于"hello3"应用,我们需要在`components`目录下创建一个新的子...

    ofbiz jar file2

    ofbiz jar file, some jars for ofbiz

    Apache OFBiz Datamodel 2

    Apache OFBiz Datamodel 2

    Ofbiz 数据库全模型

    总之,"Ofbiz数据库全模型"是一个宝贵的资源,对于学习、开发和维护Ofbiz应用的人来说,它提供了对系统数据结构的全面了解,有助于提升工作效率并确保项目的稳定性和扩展性。无论是初学者还是经验丰富的Ofbiz开发者...

    关于OFBIZ的资料

    2. **功能模块**:OfBiz的各个模块如电子商务商店、库存管理、订单处理等可能会有示例数据和操作流程,用户可以通过这些例子学习如何使用OfBiz进行日常业务操作。 3. **用户界面**:演示环境中,用户可以看到OfBiz...

    Ofbiz快速开发入门详解

    在"hello.rar"这个压缩子文件中,可能包含了作者为辅助理解Ofbiz开发所准备的示例项目。你可以通过解压并导入到开发环境中,跟随书中的步骤,实际操作一遍,这样理论与实践相结合,能更有效地掌握Ofbiz的开发技巧。 ...

    ofbiz安装与配置

    2. 我们需要修改 Ofbiz 的配置文件(entityengine.xml),以便与 MySQL 数据库集成。 3. 我们需要在 MySQL 中创建用户和库:ofbiz、ofbizolap、ofbiztenant。 本文详细介绍了 Ofbiz 的安装与配置过程,包括环境搭建...

    ofbiz api开发文档

    《OFBiz API 开发文档详解》 在信息技术领域,OFBiz(Open For ...总结,OFBiz API开发文档是开发者掌握OFBiz框架的必备资料,通过深入学习和实践,开发者可以充分利用OFBiz的强大功能,实现高效的企业级应用开发。

    OFBiz 教程

    ofbiz 官网文档翻译 ,按照此文档里面的步骤,可以安全快速的编译自己的第一个小模块 "Hello World",一开始是很抵触的,但是学着学着发现其实框架道理是相似的,为了将代码解耦,每个框架都有自己的独特解耦之道和...

    OFBIZ官方文档

    文档开篇提到,这个教程就像在C语言编程引入时期,“Hello World”程序的作用一样,是初学者学习OFBiz的第一步。使用教程时,应该利用最新版本的OFBiz,并且在遇到任何问题或疑问时,应该参考Apache OFBiz用户邮件...

Global site tag (gtag.js) - Google Analytics