이상한 단계가있는 문제가 있습니다. 나는 아약스 단계를 렌더링 머리에 렌더링 다르게 동작 모든 것을 잘이 TinyMCE에 편집기에서 변경 때마다 노드라고 다르게 동작 작품Wicket 아약스가있는 URL의 이상한 동작
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));
}
settings.addCustomSetting(" setup: function(editor) {" +
" editor.on('NodeChange', function(e) {" +
" editor.save();" +
getCallbackName() + "(editor.undoManager.hasUndo())" +
" });" +
" }");
하지만 가끔은 내가 브라우저 탭을 떠날 때, 몇 가지 탭 (크롬)을 변경 몇 분 동안 다른 응용 프로그램을 사용하고 우리의 탭으로 돌아 가면 ajax url이 우연히 브라우저 URL에 나타납니다. 이 대신 normap 매개 변수는이 ++++ 징후이 "2"어떤 이유로 그렇게 인식 sighns 그런데
을 추가 패스하는 것이 매우 이상하다
는http://localhost:8080/wicket/bookmarkable/com.tac.kulik.pages.SomePage?3-1.IBehaviorListener.0-contentPanel&entityId=2+++&undoEn=true
'+'
을 공백으로 변경업데이트 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 일이 있지만, 형태가 브라우저 JQuery와-1.12.4-버전-1476216952000.js에서 0 요청을 갖고와 : 10,254 XHR이 완료로드 : GET "
이내가 상쾌한 cicling 방지하기 위해 JS의 일부 세트를 추가했습니다,하지만 여전히 i'we "http://localhost:8080/wicket/bookmarkable/com.tac.pages.ca ...? 4-0.IBehaviorListener.0-이 ContentPanel & cardId = 1 & _ = 1476873175645 & undoEn = TRUE 부실 예외가있다.
"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