OFBiz 快速入门——续二

Stella981
• 阅读 716

OFBiz 快速入门——续二

2011年03月17日 星期四 00:03

OFBiz 快速入门

2.5 创建一个文件,取名为(controller.xml),被OFBiz webapp控制器使用的。在没有额外增加功能时,这个文件内容非常的小与简单,如下:

<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">

<include

location="component://common/webcommon/WEB-INF/common-controller.xml"/>

Practice Component Site Configuration File

Copyright 2001-2009 The Apache Software Foundation

<handler name="screen" type="view"

class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/>

<view-map name="main" type="screen"

page="component://practice/widget/PracticeScreens.xml#main"/>

2.6 回到上一级目录,创建一个(error)目录,

完整路径是(hot-deploy/practice/webapp/practice/error)

2.6.1 在(error)目录中创建一个(error.jsp)文件。文件的内容,可以从 example或其他的组件拷贝过来。

这个目录结构,就是你在上一步骤中在controller.xml文件中的/error/error.jsp的位置。你会需要用到这个目录去显示一个错误信息给用户。内容如下(省去一些HTML代码,只贴出与OFBiz有关的,详细的请自己浏览):

<%@ page import="org.ofbiz.base.util.*" %>

先获得request中的错误信息,并保存在一个errorMsg的变量中

<% String errorMsg = (String) request.getAttribute("_ERROR_MESSAGE_"); %>

最后,在HTML页面中某处合适的位置,输出其错误信息:

<%=UtilFormatOut.replaceString(errorMsg, "\n", "
")%>

2.7 在组件目录(practice)中创建目录,命名为(widget),完整路径是,(hot-deploy/practice/widget)。这个目录的作用,包含你应用将要创建的UI,有forms、menus和screens等。

2.8 在(widget)目录中创建一个命名为(PracticeScreens.xml)的文件。类似地,其文件内容也可以从Example组件中获取并拷贝到这文件中。

在创建Views前,推荐你先去阅读以下有关内容(注意,这个是告诉我自己要去阅读的)

² HTML and CSS Best Practice

² Managing Your Source Differences

² Methodology Recommendations

² User Interface Layout Best Practices

阅读以上文档后,会对你产生莫大的帮助,但在这里,可以先使用下面的代码:

<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation

="http://ofbiz.apache.org/dtds/widget-screen.xsd">

2.9 完成了一个基本应用(practice)。首先,客户端的一个request会去查看一个特定的资源,举个例子:localhost:8080/practice/cntrol/main。

当OFBiz接收到这个请求,就会查看/practice这个项。为什么呢?因为我们在ofbiz-component.xml已经声明webapps加载点是/practice。现在OFBiz知道处理(practice)组件请求的剩余部分了。

经历了OFBiz在ofbiz-component.xml查找到挂载点(/practice)后,OFBiz这时将会查看controller.xml文件。这个文件里,我们已经定义了request-maps和view-maps。如果找到request-map是路径后面的(main),就会使用相关联的view-map,其他也如此。在request-map中,能或者指定一个view或者是一个事件或一个服务这都将会在后面所见到的。如果指定的是一个view,就会进一步查看request-map元素中查找到指定的名称并返回。看如下xml内容:

<view-map name="main" type="screen"

page="component://practice/widget/PracticeScreens.xml#main"/>

在这里就可很清楚的知道,如果uri是main的时候,就会在request-map标签中进行下一步的查找,如果是success时,就会得到一个类型为view值为main的返回。那么,OFBiz就会索引到view-map中与其(main)值相等的标签。跟着,就会在PracticeScreens.xml文件中读取元素名为main的内容(#)

最后,就可以启动OFBiz,在浏览器中输入以下的URL:

http://localhost:8080/practice/control/main

2.11 在webapp(practice)目录创建一个名为(index.jsp)的文件。当然,类似地,其文件内容也可以从Example组件中拷贝过来。这个文件的作用是为了响应如下的URL的http://localhost:8080/practice/。如果你给了一个错误的URL,如http://localhost:8080/practice/unknown/request将会重定向到在web.xml定义好的redirectPath中的文件路径。

In the case, ContextFilter will filter out the request and use the redirect path to redirect the request.

第二部分

3.做进一步的一些操作

待续待续ing

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
OFBiz快速入门
OFBiz快速入门原文URL:https://cwiki.apache.org/OFBIZ/ofbiztutorialabeginnersdevelopmentguide.html(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fcwiki.apache.org%2FOFB
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这