Tapestry 5.2.6的Onkeyup事件

时间:2017-08-23 14:50:27

标签: tapestry

我想在Tapestry中使用mixins zoneUpdater来在文本字段中写入时触发事件。但是我一直收到以下错误:

Failure creating embedded component 'myComponent' of com.mycompany.myapp.web.pages.tapestryTest.testEdit: Unable to resolve 'zoneUpdater' to a mixin class name.

以下是tml页面中的代码:

<div t:type="zone" t:id="myZone" id="myZone" update="show">
<table><tr>
    <td class="td-right-view"><t:label for="myComponent"/></td>
    <td class="td-left-view"><t:textfield t:id="myComponent"
    value="myValue" t:validate="maxlength=8" maxlength="8"
    style="width:70px;" t:mixins="zoneUpdater" t:clientEvent="keyup" 
    t:event="updateMyValue"  t:zone="myZone"/></td></tr>
</table
</div>

在控制器中我定义了以下方法:

@OnEvent(component = "updateMyValue")
Object onupdateMyValue()
{
    if (this.value.length()==8){
        //does something
    }

    return myZone.getBody();
}

知道为什么我一直遇到这个问题吗?我正在做与jumpstart相同的事情,但由于某种原因,它无法识别zoneUpdater。我正在使用Tapestry 5.2.3,所以它应该可以在不创建Jumpstart的类的情况下工作。

提前致谢, 雷米

1 个答案:

答案 0 :(得分:1)

Tapestry本身没有名为ZoneUpdater的mixin。在Jumpstart页面上描述的那个(例如,http://jumpstart.doublenegative.com.au/jumpstart7/examples/ajax/onevent)是自定义的。查看源代码的链接。只需将该代码粘贴到您的项目中即可。