zk框架中self和each的含义
what meaning of self and each in zk framework
我的项目下面有一些代码。上次使用这个框架的人已经离开了这个公司。请有人向我解释下面的代码。 self
和 @each
.
是什么意思
我不知道下面的 listcell @item.areaNo
前缀项来自 self="@{each='item' }
或 value="@{item }
。而且我真的不知道self="@{each='item' }
是什么意思。
<listitem self="@{each='item' }" value="@{item }"
forward="onDoubleClick=onDoSelectItem,onClick=onDoChkDelete">
<listcell>
<fixedmodecheckbox label="${labels.delete}" />
</listcell>
<listcell label="@{item.areaNo}" />
<listcell label="@{item.formattedLocationNo}" />
<listcell label="@{item.storerCode.storerCode}" />
<listcell label="@{item.itemCode.itemCode}" />
<listcell label="@{item.itemCode.itemName }" />
<listcell label="@{item.stratedgyValue_2 }" />
<listcell label="@{item.palletNo }" />
<listcell label="@{item.itemCode.packCode.packCode }" />
<listcell label="@{item.stockCaseQty }" />
<listcell label="@{item.stockPieceQty }" />
<listcell label="@{item.allocationCaseQty }" />
<listcell label="@{item.allocationPieceQty }" />
</listitem>
您的代码使用 "old databinding" 语法呈现对象集合。
ZK 5 Developer's Reference, page 139 (available from the archive section) 中仍然提到它。尽管至少已弃用 6 或 7 年,但它仍然是 ZK 的一部分,以支持您的情况下的遗留代码。
它的作用(我也有点猜测,因为这在旧代码中很少出现)是:
each
是集合的当前对象,它被赋予了一个名称 item
,因此它可以在这个重复组件 self
内的绑定表达式中访问。
value="@{item}"
然后将简单地调用 listitem.setValue(item) 以便您的列表项记住与之关联的对象。
我同意语法很奇怪,我认为这就是为什么自 ZK 6 或 6.5 以来 新绑定注释 语法已弃用和取代它的原因(您可以看到类似的示例在 this current documentation page) 的底部。
但是,升级不是直接替换,需要对您的 java 代码进行相当多的重构。这就是为什么这种代码一直存在的原因。
我的项目下面有一些代码。上次使用这个框架的人已经离开了这个公司。请有人向我解释下面的代码。 self
和 @each
.
是什么意思
我不知道下面的 listcell @item.areaNo
前缀项来自 self="@{each='item' }
或 value="@{item }
。而且我真的不知道self="@{each='item' }
是什么意思。
<listitem self="@{each='item' }" value="@{item }"
forward="onDoubleClick=onDoSelectItem,onClick=onDoChkDelete">
<listcell>
<fixedmodecheckbox label="${labels.delete}" />
</listcell>
<listcell label="@{item.areaNo}" />
<listcell label="@{item.formattedLocationNo}" />
<listcell label="@{item.storerCode.storerCode}" />
<listcell label="@{item.itemCode.itemCode}" />
<listcell label="@{item.itemCode.itemName }" />
<listcell label="@{item.stratedgyValue_2 }" />
<listcell label="@{item.palletNo }" />
<listcell label="@{item.itemCode.packCode.packCode }" />
<listcell label="@{item.stockCaseQty }" />
<listcell label="@{item.stockPieceQty }" />
<listcell label="@{item.allocationCaseQty }" />
<listcell label="@{item.allocationPieceQty }" />
</listitem>
您的代码使用 "old databinding" 语法呈现对象集合。 ZK 5 Developer's Reference, page 139 (available from the archive section) 中仍然提到它。尽管至少已弃用 6 或 7 年,但它仍然是 ZK 的一部分,以支持您的情况下的遗留代码。
它的作用(我也有点猜测,因为这在旧代码中很少出现)是:
each
是集合的当前对象,它被赋予了一个名称 item
,因此它可以在这个重复组件 self
内的绑定表达式中访问。
value="@{item}"
然后将简单地调用 listitem.setValue(item) 以便您的列表项记住与之关联的对象。
我同意语法很奇怪,我认为这就是为什么自 ZK 6 或 6.5 以来 新绑定注释 语法已弃用和取代它的原因(您可以看到类似的示例在 this current documentation page) 的底部。
但是,升级不是直接替换,需要对您的 java 代码进行相当多的重构。这就是为什么这种代码一直存在的原因。