在检票口行为中使用附加组件的最佳方式
Best way to use additional components in wicket behaviors
我已经创建了一个可以附加到表单组件的检票口行为的新子类。如果此类组件发生验证错误,则行为 shows/hides 特定的错误标签。我的代码看起来类似于:
public MyErrorBehavior(Component errorComponent) {
// show/hide errorComponent within onUpdate() or
// onError() based on getComponent().isValid()
}
我的问题是:可以将组件传递给行为构造函数吗?
干杯,
安德烈亚斯
是的,允许保留对组件的引用的行为,请参见 EqualInputValidator 作为示例。
如果您从组件树中删除这些组件,请务必小心:您也应该删除该行为,否则您将拥有不再分离的组件的悬空引用。
不需要保留对组件的引用,因为 Wicket 将在回调方法中传递组件,例如
@Override
public void onComponentTag(Component component, ComponentTag tag)
{
// cast component to FormComponent and make the check here
}
这种方式不需要清理,您可以将相同行为实例添加到多个 (Form)Component。
我已经创建了一个可以附加到表单组件的检票口行为的新子类。如果此类组件发生验证错误,则行为 shows/hides 特定的错误标签。我的代码看起来类似于:
public MyErrorBehavior(Component errorComponent) {
// show/hide errorComponent within onUpdate() or
// onError() based on getComponent().isValid()
}
我的问题是:可以将组件传递给行为构造函数吗?
干杯, 安德烈亚斯
是的,允许保留对组件的引用的行为,请参见 EqualInputValidator 作为示例。
如果您从组件树中删除这些组件,请务必小心:您也应该删除该行为,否则您将拥有不再分离的组件的悬空引用。
不需要保留对组件的引用,因为 Wicket 将在回调方法中传递组件,例如
@Override
public void onComponentTag(Component component, ComponentTag tag)
{
// cast component to FormComponent and make the check here
}
这种方式不需要清理,您可以将相同行为实例添加到多个 (Form)Component。