저는 첫 번째 wicket 앱을 작성 중이며 오늘 내 첫 번째로드 블록을 만났습니다. 여기에 문제가 있습니다. AjaxSubmitLink가 포함 된 페이지가 있습니다. onSubmit 이벤트에서 setResponsePage를 사용하여 패널을로드합니다.Wicket - SetResponsePage 콜백이 실행되지 않습니다.
내 응용 프로그램의 홈페이지에서 하이퍼 링크 또는 탭 전환 (wicket-extensions의 기본 ITab 사용)과 같은 두 가지 방법으로 위에서 언급 한 페이지로 이동할 수 있습니다. 둘 다 동일한 생성자를 호출합니다 동일한 주장과 함께.
이제 하이퍼 링크를 사용하여 페이지로 이동하면 모든 것이 올바르게 작동합니다. 그러나 탭을 사용하여 페이지를 탐색하면 AjaxSubmitLink가 패널을로드하지 않습니다. Ajax 요청이 있고, 서버가 처리하는 것을 볼 수 있지만, 콜백이 실행되고 있지 않은 것 같습니다.
후자의 경우, 방화범이 치는 콘솔에서 내 Ajax 요청을 로깅하지 않습니다. 그것은 전 사건의 요청을 잘 기록합니다.
나는 힌트, 포인터 또는 뾰족 함을 여기에서 다소 비틀어 먹었습니까?
편집 : 링크를 선언하는 코드.
editLink = new AjaxSubmitLink("editLink") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> masterForm) {
setResponsePage(new EditPage(programId));
}
};
편집 :
내가 좀 해결 방법을 발견 : 나는, 실패한 아약스 호출 대신 200
UPDATE의, 302을 반환하는 피들러로 만든 요청을 검사. 피들러 정보를 통해 setResponsePage 비헤이비어를 검색하면 나를 https://issues.apache.org/jira/browse/WICKET-1703으로 안내합니다.
어쨌든 링크에 대한 POST 요청이 엄격하게 필요하지 않았으므로 대신 원하는 동작을 얻으려면 GET을 사용했습니다.
흥미로운 찾기를 사용하여 찾기 : 잘못된 유형의 application/x-www-form-urlencoded 대신 multipart/form-data가 전송됩니다.
나는 실제 문제에 관해서는 어둠 속에서 일종의 설명을 주셔서 감사합니다.
'setResponsePage는()'웹 페이지가 아닌 웹 구성 요소 (이 경우 패널)를 사용합니다. 몇 가지 코드가 도움이 될 수 있습니까? – Marcelo
코드가 제공됩니다. 게시 할 부분이 확실하지 않습니다. 또한 피들러는 요청이 302와 함께 돌아오고 있다고 나에게 알려줍니다. – Sans
AjaxSubmitLink를 사용하는 것이 다른 페이지로 리디렉션되는 경우 어떤 용도로 사용합니까? 어쨌든 전체 페이지를 다시로드해야한다면 정상적인 SubmitLink를 사용하지 않는 것이 어떻습니까? –