2023-02-25 350
你可以将其理解为controller的配置,如果你了解或使用过struts的配置或springmvc的annotation,就会发现这个定义跟它们是很相似的:
该元素定义了请求的映射关系。它使用名为uri的属性,表述该uri将要映射的请求。内部包含三个常用的子元素,分别是:security,event,response。
包含的属性:
handler包含的属性:
然后根据其子元素security的配置,对其进行安全检查:
因为有event元素,那么此处会触发一个“事件”(注意,不一定会有event元素)。这里是通过ofbiz的ServiceEngine来调用一个service:
调用完该service后,根据service执行的结果,匹配不同的响应视图:
这里(也是通常情况下)有两种不同的响应配置:success,error。而且他们的响应方式不同,我们分开来看:
如
果event触发调用createCreditCardAndAddress服务的返回结果为success,那么将触发一个请求(type为
request表示再次触发一个请求,但这个请求是服务端的请求,有点像servlet里的forward动作),uri为
finalizeOrder(它是另一个request-map的定义):
其语义为:完成订单创建。
如
果event触发调用createCreditCardAndAddress服务的返回结果为error,那么它将会向浏览器展示一个视图(type为
view),而该视图的名称为:billsetting。那接下来ofbiz就去查找名为:billsetting的view-map,查找到如下的结
果:
发
现它是一个widget配置(type为screen表示OFBiz中采用的一种xml的widget),而该配置的路径
为:component://order/widget/ordermgr/OrderEntryOrderScreens.xml文件中名称为
BillSettings的screen。然后就利用名为screen的handler,来解析该screen配置:
上面提到ofbiz在渲染视图的时候,采用了一个元素名为screen的配置:
这牵扯到OFBiz前端screen以及form的widget布局设计。
它是screen的子元素,一个screen可以包含n个section。而它可以又会由actions以及widgets元素组成。
在actions元素下,你可以定义若干个不同种类的action:
这
里首先定义了一个名为:CommonOrderCheckoutDecorator的decorator-screen。所谓的decorator-
screen你可以将其理解为页面的模板或者占位。比如,就一个页面而言,部分内容与空间是固定的,主要变化的是某个特定的区域。此时布局一个新页面的时
候就没必要为其每个区域都重复编写html,对于公共区域直接引用已经定义好的模板即可。
比如此处的CommonOrderCheckoutDecorator装饰器screen,其定义中,它又引用了该app的一个main-decorator:
这
个是当前app最外层的装饰器模板。这样就形成了widget的两层嵌套关系:BillSettings引用了
CommonOrderCheckoutDecorator,而CommonOrderCheckoutDecorator又引用了main-
decorator,这种嵌套关系,也同时建立了页面显示的联系。
一个通常的应用,其mainDecoratorLoaction参数可以在其web.xml中的context-param配置中找到:
回到正题,在BillSettings的第一个decorator-screen:CommonOrderCheckoutDecorator,还有一个decorator-section:body,它是对内容区域的模板占位。
widget
内部拥有一个platform-specific子元素,它可以看做是一种switch-case语句。OFBiz widget
工具集没用对render html
UI的方式进行限制。理论上,你可以采用任何技术来render浏览器能显示内容。在这里UI被render成HTML,而且还使用了html模板,该模
板的路径通过location属性指定。此处该模板使用的是freemarker(这也是OFBiz中用得最多的一种模板技术)。
就前端展现而言,除了需要有由html标签组成的模板,还需要绑定数据才能形成完整的页面。
OFBiz提供了两种绑定数据的方式:
原文链接:https://77isp.com/post/34437.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
小游客游戏攻略网游戏攻略网 2024年07月26日
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
扫码二维码
获取最新动态