如何在zk网格中执行乘法我的网格看起来像这样
评定数量金额
| 2 ----- 3 --- 6
|
| 4 ------ ---- 4 16 |
答案 0 :(得分:1)
each
代表var名称,你如何为每个变量命名变量。默认情况下,这是each
。
如果是MVVM:
您可以添加到您的VM:
public long countNumbers (int first, int second) {
return (long)first + second;
}
在zul:
<label value="@load(vm.countNumbers(each.number1, each.numer2))"/>
在MVVM或MVC中:
如果它需要常规,你可以使用这种方法编写自己的taglib。(也适用于MVC)
您需要在WEB-INF / tld文件夹中创建一个tld文件。 :
<taglib>
<!-- count numbers to each other -->
<function>
<name>countUp</name>
<function-class>your.path.Classname</function-class>
<function-signature>
java.lang.Long countNumbers(java.lang.Integer, java.lang.Integer)
</function-signature>
<description>counts the 2 numbers to each other.</description>
</function>
</taglib>
然后你创建一个新的java util类(注意,方法需要是静态的):
public static Long countNumbers (Integer first, Integer second) {
return (Long)first + second;
}
在zul:
<?taglib uri="/WEB-INF/tld/taglibname.tld" prefix="ct"?>
<label value="@load(ct:countUp(each.number1,each.number2))"/>
如果使用渲染器,则直接在java中设置行的所有对象,因此计算2个值应该没有问题,因为您已经拥有了原始对象。
编辑:将返回类型更改为long(2 big int可能导致溢出)