1

我的 Java 代码中有这样的东西:

//...omitted some not revelant code
AjaxIndicatorAppender indicator = new AjaxIndicatorAppender();
final RequiredTextField<String> nickField = new RequiredTextField<String>( "nick", new PropertyModel<String>( this, "nickValue" ) );
formContainer.add( nickField );
indicator.bind(nickField);
nickField.add( new MyValidatingBehaviour( (Form) formContainer, "onkeyup", Duration.ONE_SECOND, indicator ) );

//...

private class MyValidatingBehaviour extends AjaxFormValidatingBehavior implements IAjaxIndicatorAware
{
    AjaxIndicatorAppender indicator;

    private MyValidatingBehaviour( Form<?> form, String event, final Duration throttleDelay, AjaxIndicatorAppender indicator )
    {
        super( form, event );
        this.setThrottleDelay( throttleDelay );
        this.indicator = indicator;
    }

    @Override
    public String getAjaxIndicatorMarkupId()
    {
        return indicator.getMarkupId();
    }
}

但是什么也没有发生,没有任何指标,我做错了什么吗?找不到我的案例的任何例子

4

1 回答 1

0

代替

indicator.bind(nickField);

它应该是

nickField.add(indicator);

它有效:)

于 2012-04-19T07:22:21.197 回答