我想在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的类的情况下工作。
提前致谢, 雷米
答案 0 :(得分:1)
Tapestry本身没有名为ZoneUpdater的mixin。在Jumpstart页面上描述的那个(例如,http://jumpstart.doublenegative.com.au/jumpstart7/examples/ajax/onevent)是自定义的。查看源代码的链接。只需将该代码粘贴到您的项目中即可。