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学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值