在wicket行为中使用其他组件的最佳方式

时间:2015-08-11 22:45:41

标签: java wicket wicket-6

我已经创建了一个wicket行为的新子类,可以附加到表单组件。如果此类组件发生验证错误,则行为会显示/隐藏特定的错误标签。我的代码看起来与此类似:

if (mRequestedNumColumns == AUTO_FIT) {
        if (requestedColumnWidth > 0) {
            mNumColumns = (availableSpace + requestedHorizontalSpacing) /
                    (requestedColumnWidth + requestedHorizontalSpacing);
        } else {
            mNumColumns = 2;
        }
}

我的问题是:将组件传递给行为构造函数是否可以?

干杯, 安德烈亚斯

2 个答案:

答案 0 :(得分:0)

是的,允许行为保持对组件的引用,请参阅EqualInputValidator作为示例。

如果从组件树中删除这些组件,请注意:您也应该删除该行为,否则您将拥有不再分离的组件的悬空引用。

答案 1 :(得分:0)

不需要保留对组件的引用,因为Wicket将在回调方法中传递组件,例如

@Override 
public void onComponentTag(Component component, ComponentTag tag) 
{ 
  // cast component to FormComponent and make the check here
} 

这种方式无需清理,您可以将相同的行为实例添加到多个(表单)组件。