Я пытаюсь использовать очень хороший ConfirmerAjaxLink из Visural .Тем не менее, я получаю js-скрипт при загрузке страницы: «jQuery не определен».
Я написал небольшую тестовую страницу, чтобы определить проблему:
public class ConfirmAjaxLinkTestPage extends WebPage {
public ConfirmAjaxLinkTestPage() {
this.add(new ConfirmerAjaxLink("confirm") {
@Override
public void onClick(AjaxRequestTarget target) {
System.out.println("OK");
}
});
}
@Override
public void renderHead(IHeaderResponse response) {
response.renderJavaScriptReference(new JavaScriptResourceReference(
JavascriptLibraryUtil.class,
"jquery/jquery-1.6.1.min.js"));
}
}
После быстрого поиска я увидел, что ConfirmerAjaxLink добавит еще один javascript, который использует jQuery.Тем не менее, поскольку это делается с помощью поведения, добавляемого к компоненту (ссылка выше), этот сценарий добавляется в разметку перед jQuery (так как он вызывается перед renderHead моей страницы).
ЕслиСначала я изменяю headerRenderStrategy на parent следующим образом:
System.setProperty("Wicket_HeaderRenderStrategy","org.apache.wicket.markup.renderStrategy.ParentFirstHeaderRenderStrategy");
это работает, но это скорее взлом, чем решение (также, как указано в AbstractHeaderRenderStrategy
: НЕ ОФИЦИАЛЬНО ПОДДЕРЖИВАЕТСЯ WICKET).
Есть ли чистый путь к этой (я бы подумал, не исключительной) проблеме?