Как Вы устанавливаете внимание на компонент с Калиткой Apache? Поиск приводит к очень небольшой информации, главным образом при установке поля по умолчанию. Я не хочу устанавливать поле по умолчанию, скорее я надеюсь устанавливать фокус, когда, например, определенный переключатель устанавливается.
Создав поведение для установки фокуса, вы сможете добавить его к компоненту для любого события, просто убедитесь, что этот компонент является частью AjaxRequestTarget. Я не понимаю, почему это не сработает ...
myRadioButton.add(new AjaxEventBehavior("onchange") {
@Override
protected void onEvent(AjaxRequestTarget target) {
myOtherComponent.add(new DefaultFocusBehavior());
target.addComponent(myForm);
}
});
Вот ссылка, которая показывает, как создать поведение фокуса по умолчанию, если у вас его еще нет: http: // javathoughts .capesugarbird.com / 2009/01 / wicket-and-default-focus-behavior.html
Если вы хотите установить фокус только через javascript и не хотите перезагружать форму или компонент, вы можете использовать следующий код:
import org.apache.wicket.Component;
public class JavascriptUtils {
private JavascriptUtils() {
}
public static String getFocusScript(Component component) {
return "document.getElementById('" + component.getMarkupId() + "').focus();";
}
}
А затем в любом методе Ajax, который вы можете использовать:
target.appendJavascript(JavascriptUtils.getFocusScript(componentToFocus));