如何在tapestry tml中进行计算?

时间:2018-03-06 08:36:23

标签: java tapestry

我是挂毯的新手,很抱歉,如果我犯了错误,我已经阅读了文档,但对前端计算数据没有任何线索。

我的例子:

Hello.Java

public class Hello {

    @Property
    @Persist
    private int numberA;

    @Property
    @Persist
    private int numberB;

    void onPrepare(){
         this.numberA = 2;
         this.numberB = 3;
    }
}

Hello.tml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" t:type="layout" 
    xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
    xmlns:p="tapestry:parameter">

    Total: <input type="number" value="${numberA+numberB}"></input>

</html>

运行时出现此错误:

  

org.apache.tapestry5.ioc.internal.util.TapestryException:无法   将'numberA + numberB'转换为组件参数绑定

任何信息都将受到赞赏。

谢谢

1 个答案:

答案 0 :(得分:2)

Tapestry的表达语言是故意最小的,不包括数学表达式之类的东西。比属性评估复杂得多的东西属于相应的组件类(同名的Java文件)。否则会导致同一文件中的标记和代码混合逐渐混乱。

只需创建一个简单的getter - 例如getSum() - 返回你想要的总和,然后在tml文件中使用表达式$ {sum}