在zk网格中执行乘法

时间:2014-06-14 11:06:52

标签: user-interface zk

如何在zk网格中执行乘法我的网格看起来像这样

评定数量金额

| 2 ----- 3 --- 6 |
| 4 ------ ---- 4 16 |

1 个答案:

答案 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可能导致溢出)

相关问题