2017-08-23 42 views
1

我正在使用Tapestry中的mixins zoneUpdater在我写入文本字段时触发事件。不过,我不断收到以下错误:带有挂毯的Onkeyup事件5.2.6

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

挂毯本身并没有一个叫ZoneUpdater混入。在Jumpstart页面上描述的一个(例如,http://jumpstart.doublenegative.com.au/jumpstart7/examples/ajax/onevent)是一个自定义的页面。查看源代码链接。只需将该代码粘贴到您的项目中。

+0

我试了一下,它的工作,谢谢!我发现了另一种方式,我会尽快发布。 – Remi