我已经创建了一个wicket行为的新子类,可以附加到表单组件。如果此类组件发生验证错误,则行为会显示/隐藏特定的错误标签。我的代码看起来与此类似:
if (mRequestedNumColumns == AUTO_FIT) {
if (requestedColumnWidth > 0) {
mNumColumns = (availableSpace + requestedHorizontalSpacing) /
(requestedColumnWidth + requestedHorizontalSpacing);
} else {
mNumColumns = 2;
}
}
我的问题是:将组件传递给行为构造函数是否可以?
干杯, 安德烈亚斯
答案 0 :(得分:0)
是的,允许行为保持对组件的引用,请参阅EqualInputValidator作为示例。
如果从组件树中删除这些组件,请注意:您也应该删除该行为,否则您将拥有不再分离的组件的悬空引用。
答案 1 :(得分:0)
不需要保留对组件的引用,因为Wicket将在回调方法中传递组件,例如
@Override
public void onComponentTag(Component component, ComponentTag tag)
{
// cast component to FormComponent and make the check here
}
这种方式无需清理,您可以将相同的行为实例添加到多个(表单)组件。