java Tapestry事件动态组件
我想为动态生成的组件实现一个eventhandler。这意味着我有一个Table
,它的源代码绑定到一个定制的TableModel
(它实现了一个接口JsonGenerator
,可以用它生成json数据)。在这个TableModel
中,我添加了几个自定义组件,当它们的状态改变时,它们会触发一个事件(valueChanged
)。这些组件具有ID(1到4)。然而,我不能只添加一个类似的方法:
void onValueChangedFrom1 ()
因为有时不存在id为1的组件。在尝试anway时,我会遇到以下异常:
Method de.[...].onValueChangedFrom1() references component id '1' which does not exist.
我无法修改自定义TableModel
、JsonGenerator
或其他自定义组件
了解自定义组件的值可以通过tapestry的Request
服务访问可能会很有趣,比如:
request.getParameter("1");
但是,当这个值发生变化时,如何添加事件处理程序呢?这在Tapestry中可能吗
# 1 楼答案
您可以在事件上添加1-4作为上下文,并在事件处理程序中捕获它。不过,您的事件处理程序需要是组件无关的,这意味着您需要一个适用于所有组件的事件处理程序,即
然后在每个自定义组件上向事件添加上下文,您没有显示当前如何生成事件,因此我无法告诉您要更新什么