У меня проблема с странными шагами. Я Аякса ведут себя вынесенное Head Render StageWicket Странное поведение URL-адреса с ajax
final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {
protected void respond(final AjaxRequestTarget target) {
boolean undoEn = getRequest().getQueryParameters().getParameterValue("undoEn").toBoolean();
if (undoEn) {
mSaveButton.setEnabled(true);
target.add(mSaveButton);
}
}
};
public String getCallbackName() {
return "saveButtonVisibilityToggle";
}
@Override
public void renderHead(IHeaderResponse response) {
String script = getCallbackName() + " = function (e) { Wicket.Ajax.ajax({\"u\": \"" + behave.getCallbackUrl() + " + &undoEn=\"+e+\"\" });}";
response.render(OnDomReadyHeaderItem.forScript(script));
}
Все хорошо работает в этом ведут себя называют каждый раз, когда узел изменен в редакторе TinyMCE
settings.addCustomSetting(" setup: function(editor) {" +
" editor.on('NodeChange', function(e) {" +
" editor.save();" +
getCallbackName() + "(editor.undoManager.hasUndo())" +
" });" +
" }");
Но иногда, когда я оставить вкладку браузера, изменить несколько вкладок (хром) затем используйте другое приложение в течение нескольких минут и вернитесь на нашу вкладку, ajax url случайно появился в URL-адресе браузера.
http://localhost:8080/wicket/bookmarkable/com.tac.kulik.pages.SomePage?3-1.IBehaviorListener.0-contentPanel&entityId=2+++&undoEn=true
это тоже довольно странно, что вместо normap параметра передать это ++++ признаки добавил
кстати этот sighns признан «2», так по какой-то причине «+» изменено на пробельных
ОБНОВЛЕНИЕ 1 Использование ответа @svenmeier У меня бесконечная петля начала страницы, освежающая. бревнами
org.apache.wicket.core.request.mapper.StalePageException: A request to
page '[Page class = x.x.x.CardPage, id = 25, render count = 1]' has been
made with stale 'renderCount'. The page will be re-rendered.
и действительно по какой-то ссылке причина ведут себя имеет renderCount 1, но форма имеет 0. запрос от браузера JQuery-1.12.4-Ver-1476216952000.js: 10254 XHR завершения загрузки: GET " http://localhost:8080/wicket/bookmarkable/com.tac.pages.ca ...? 4-0.IBehaviorListener.0-ContentPanel & CardID = 1 & _ = 1476873175645 & undoEn = истина»
Я ве добавить некоторый набор JS, чтобы предотвратить cicling освежающий, но до сих пор i'we имеет исключение Stale
"if (editor.undoManager.hasUndo()) { " +
" console.debug('Behave called ');" +
behave.getCallbackScript() +
" }" +
это мой ведут себя
final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {
protected void respond(final AjaxRequestTarget target) {
log.info("Behave called");
boolean undoEn = getRequest().getQueryParameters().getParameterValue("undoEn").toBoolean();
if (undoEn) {
mSaveButton.setEnabled(true);
target.add(mSaveButton);
}
}
//
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
String undoEn = "return {'undoEn': editor.undoManager.hasUndo()};";
attributes.getDynamicExtraParameters().add(undoEn);
}
};
И нет никакой разницы, это может быть вести себя без какой-либо реализации, поведение страницы такой же ((
final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {
@Override
protected void respond(AjaxRequestTarget target) {
}
};
Вы разделывать обратный вызов URL, вставив "+" в него. Обратите внимание, что '+' - это закодированное пространство. – svenmeier