ofbiz总结——Screen Widgets定义中常用的一些标签
2017-10-25 11:14
363 查看
1. if-then-else结构
<condition>元素组成<section>元素的If部分。如果元素中条件的值为true, if-then-else结构的"then"部分将被执行。否则,Else部分将被执行。
我们能放入<condition>元素中的有12中可能的条件类型。其中的四种是逻辑操作(或者合并):<and>、<xor>、<or>和<not>。三个是有关权限检查的: <if-service-permission>、<if-has-permission>和<if-entity-permission>。剩下的五种是各种形式的比较,其中的一个是简单的空值检查:<if-validate-method>、
<if-compare>、<if-compare-field>、<if-regexp>和<if-empty>。
我们已经使用了这些条件中的最简单的<if-compare>元素。
2. <actions>标签
<actions>元素包含了预处理动作,它通常(通过OFBiz MVC架构的约定)是数据操作、事务或者获取(CRUD中的R)、数据创建、更新和删除(CRUD中的其他部分)应在请求映射的事件中完成(本书稍后介绍),不是在视图动作中(定义在<actions>元素中的预处理)。视图层仅仅应该准备显示的数据,而非更改数据。
有10种可能类型的动作我们能放到<actions>元素中。其中的五个是数据获取(从数据库)动作,它把数据放入变量中,变量是可访问的并且我们可用之于screen widget容器。这五种类型是:<entity-and>、<entity-condition>、<entity-one>、<get-related-one>和<get-related>。第7章后我们将了解更多。
10种可能的动作类型中的两种调用可以是复杂商务逻辑的代码。动作类型<script>调用用BeanShell编写的代码。动作类型<service>调用包装在OFBiz服务(OFBiz一个主要优点,本书稍后有介绍)的代码。
十种可能动作类型的3种简单地把值赋给变量,以和数据获取动作相同的方式。活动类型 <property-map>和<property-to-field>从一个属性或者配置文件中获取值。最简单的动作<set>,将任何我们想要的值设置给任何变量。我们现在就将在例子中介绍它。
在screen widget ConditionalScreen中我们使用了最简单的动作:
---------------------------------------------------
<actions>
<set field="blah" value="blih" />
</actions>
---------------------------------------------------
我们设置字符串值blih到变量blah上。
注意,<actions>元素不会被处理直到 <condition>被完全处理。因此,如果评估,在<condition>中变量blah的值仍然未设置。下面的评估是false:
---------------------------------------------------
<condition>
<if-compare field="blah" operator="equals" value="blih"/>
</condition>
---------------------------------------------------
3. <widgets>标签
<widgets>元素是一个显示元素,在它里面放置我们需要显示的内容。有15种元素我们能够放入到<widgets>元素中。多数元素类型是符合的,调用其他widget产品的嵌套结构,一些是递归的(想象为”screen中的screen中的screen“)。这些类型中的四种是简单的:<container>、<image>、<link>和<label>。
所有的15种元素将在本书稍后做详情介绍。现在简短地,相比于我们所知的XHTML,我们只需要知道<container> 等同于XHTML元素<div>,<image>元素等同于<img>元素,<link>元素等同于<a>,<label>等同于平面文件(非标记)。
在ConditionalScreen中我们已经使用了简单的<label>元素。
---------------------------------------------------
<label text="Condition passed. Showing widgets element. Blah is: ${blah}" />
---------------------------------------------------
如果If部分估值为true,我们应该能看到文本:Condition passed.Showing widgets element. Blah is: blih.
4.<fail-widgets>标签
在结构和功能上,<fail-widgets>元素就像<widgets>元素。然而,<fail-widgets>元素仅仅处理如果if部分估值为false情况。在那个例子中,Then部分被完全跳过,<actions>元素和<widgets>元素也一点没处理。
再次,在我们的ConditionalScreen中使用简单的<label>元素:
---------------------------------------------------
<fail-widgets>
<label text="Condition failed! Showing fail-widgets element.Blah is: ${blah}" />
</fail-widgets>
---------------------------------------------------
如果if部分估值为false,我们应该能看到文本:Condition failed!Showing fail-widgets element. Blah is:
注意<actions>如何被跳过的,并且变量blah将是空的(没有设置)。
<screen name="ConditionalScreen"> <section> <condition> <if-compare field="parameters.show" operator="equals" value="widgets" /> </condition> <actions> <set field="blah" value="blih" /> </actions> <widgets> <label text="Condition passed. Showing widgets element. Blah is: ${blah}" /> </widgets> <fail-widgets> <label text="Condition failed! Showing fail-widgets element. Blah is: ${blah}" /> </fail-widgets> </section> </screen>
<condition>元素组成<section>元素的If部分。如果元素中条件的值为true, if-then-else结构的"then"部分将被执行。否则,Else部分将被执行。
我们能放入<condition>元素中的有12中可能的条件类型。其中的四种是逻辑操作(或者合并):<and>、<xor>、<or>和<not>。三个是有关权限检查的: <if-service-permission>、<if-has-permission>和<if-entity-permission>。剩下的五种是各种形式的比较,其中的一个是简单的空值检查:<if-validate-method>、
<if-compare>、<if-compare-field>、<if-regexp>和<if-empty>。
我们已经使用了这些条件中的最简单的<if-compare>元素。
2. <actions>标签
<actions>元素包含了预处理动作,它通常(通过OFBiz MVC架构的约定)是数据操作、事务或者获取(CRUD中的R)、数据创建、更新和删除(CRUD中的其他部分)应在请求映射的事件中完成(本书稍后介绍),不是在视图动作中(定义在<actions>元素中的预处理)。视图层仅仅应该准备显示的数据,而非更改数据。
有10种可能类型的动作我们能放到<actions>元素中。其中的五个是数据获取(从数据库)动作,它把数据放入变量中,变量是可访问的并且我们可用之于screen widget容器。这五种类型是:<entity-and>、<entity-condition>、<entity-one>、<get-related-one>和<get-related>。第7章后我们将了解更多。
10种可能的动作类型中的两种调用可以是复杂商务逻辑的代码。动作类型<script>调用用BeanShell编写的代码。动作类型<service>调用包装在OFBiz服务(OFBiz一个主要优点,本书稍后有介绍)的代码。
十种可能动作类型的3种简单地把值赋给变量,以和数据获取动作相同的方式。活动类型 <property-map>和<property-to-field>从一个属性或者配置文件中获取值。最简单的动作<set>,将任何我们想要的值设置给任何变量。我们现在就将在例子中介绍它。
在screen widget ConditionalScreen中我们使用了最简单的动作:
---------------------------------------------------
<actions>
<set field="blah" value="blih" />
</actions>
---------------------------------------------------
我们设置字符串值blih到变量blah上。
注意,<actions>元素不会被处理直到 <condition>被完全处理。因此,如果评估,在<condition>中变量blah的值仍然未设置。下面的评估是false:
---------------------------------------------------
<condition>
<if-compare field="blah" operator="equals" value="blih"/>
</condition>
---------------------------------------------------
3. <widgets>标签
<widgets>元素是一个显示元素,在它里面放置我们需要显示的内容。有15种元素我们能够放入到<widgets>元素中。多数元素类型是符合的,调用其他widget产品的嵌套结构,一些是递归的(想象为”screen中的screen中的screen“)。这些类型中的四种是简单的:<container>、<image>、<link>和<label>。
所有的15种元素将在本书稍后做详情介绍。现在简短地,相比于我们所知的XHTML,我们只需要知道<container> 等同于XHTML元素<div>,<image>元素等同于<img>元素,<link>元素等同于<a>,<label>等同于平面文件(非标记)。
在ConditionalScreen中我们已经使用了简单的<label>元素。
---------------------------------------------------
<label text="Condition passed. Showing widgets element. Blah is: ${blah}" />
---------------------------------------------------
如果If部分估值为true,我们应该能看到文本:Condition passed.Showing widgets element. Blah is: blih.
4.<fail-widgets>标签
在结构和功能上,<fail-widgets>元素就像<widgets>元素。然而,<fail-widgets>元素仅仅处理如果if部分估值为false情况。在那个例子中,Then部分被完全跳过,<actions>元素和<widgets>元素也一点没处理。
再次,在我们的ConditionalScreen中使用简单的<label>元素:
---------------------------------------------------
<fail-widgets>
<label text="Condition failed! Showing fail-widgets element.Blah is: ${blah}" />
</fail-widgets>
---------------------------------------------------
如果if部分估值为false,我们应该能看到文本:Condition failed!Showing fail-widgets element. Blah is:
注意<actions>如何被跳过的,并且变量blah将是空的(没有设置)。
相关文章推荐
- 关于javascript数组的定义与其一些常用方法总结
- 【html】【一些常用的标签阶段总结】
- [置顶] ofbiz总结——常用XML结构定义文档链接
- JS常用方法的一些总结一
- struts2常用标签总结,转来的做下记录,以备将来用
- [置顶] Python中常用的一些操作总结(未完待续)update @ 2017-5-18
- 一些常用JS 函数总结
- crocs code ide-js中的一些常用总结
- 总结一些常用的CMS(转)
- SNMP监控一些常用OID的总结
- 一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
- Python之一些常用的爬虫技巧总结
- dedecms一些常用的标签属性讲解
- 帝国cms模板标签大全_帝国cms常用标签调用方法总结
- 总结一些常用的adb命令
- Struts2常用标签总结
- java关于日期的一些常用方法总结
- 最近我总结的常用mate标签-常用mate标签
- Struts2常用标签总结