2012-07-26 2 views
0

다른 (이) 사이트에는 비슷한 질문이 많이 있지만 그 중 누구도 내 문제를 해결하지 못했습니다. 나는 개찰구가있는 2 개의 페이지가 있습니다.wicket 상태 저장 페이지로 양식 제출 후 1.5 url

mountPage(firstPath, firstPage.class); 
mountPage(secondPath, secondPage.class); 

처음 페이지 firstPage로드, 그것은 기본 생성자로로드하고 원하는대로 URL이 보이는 다음과 같이 페이지가 장착되어있다. firstPage의 형태가 안정된 페이지 secondPage, 난 앞으로 제출 얻으면 다음과 같이

번째 페이지가 탑재되어 있지만
Page secondPage = new secondPage(arg1, arg2); 
RequestCycle().setResponsePage(secondPage); 

, 결과 페이지 (secondPage)은 다음과 같은 URL로 렌더링 :

context?21-1.IFormSubmitListener-componentName-childComponentName-childComponentName-someForm 

내가 원하는 것은 내가 정의한 마운트 된 경로로 렌더링 될 secondPage입니다. 이것이 상태 보존 페이지라는 것과 wicket이 정확한 인스턴스를로드하기 위해서는 URL이 상태 유지되어야한다는 것을 알고 있습니다. 나는 URL에 페이지 버전과 ID를 가지고 있어도 상관 없다. URL에이 오랜 추악한 구성 요소 경로가 있기를 원하지 않는다. 또한, 왜 secondPage의 첫 번째 페이지에서 양식 경로가 필요한지 이해가 가지 않습니다.

까지 Wicket을 이해합니다. 1.4 HybridUrlCodingStrategy는 비슷한 일을 할 수 있지만 wicket 1.5에서 어떤 방법을 찾을 수 없습니다. 은 개찰구와 함께 할 수있는 가능성이 있습니까?

아무런 도움이되지 않을 것입니다. 실제로이 문제가 저를 막아 주므로, 이미 많은 시간을 보냈습니다. 교체

답변

0

시도 :

Page secondPage = new secondPage(arg1, arg2); 
RequestCycle().setResponsePage(secondPage); 

과 :

RequestCycle().setResponsePage(secondPage.class); 

이 내 머리 위로 떨어져 작동합니다 ...

편집 : 그냥 당신이 매개 변수를 전달하는주의, 이 경우 secondPage를 다음과 같이 변경해야합니다.

다음
class secondPage extends WebPage 
{ 
    public secondPage(PageParameters params) //Instead of secondPage(Type1 arg1, Type2 arg2) 
    { 
     arg1Type arg1 = params.get(0).to*{arg1Type}*(); 
     arg2Type arg2 = params.get(1).to*{arg2Type}*(); 
    } 
} 

과 전화 :

PageParameters params = new PageParameters(); 
params.set(0, arg1); 
params.set(1, arg1); 
RequestCycle().setResponsePage(secondPage.class, params); 
+0

귀하의 제안의 문제는 PageParameters는 StringValue을 처리하는 동안 그 ARG1과 ARG2 복잡한 자바 객체가 내가 추가하려고 할 때마다 그렇게 /를 PageParameters 내 인수를 얻을입니다입니다 나는 ClassCastException을 얻는다. – zuckermanori

+0

충분하게, 나는 이것을 발견했다 : http://apache-wicket.1842946.n4.nabble.com/Object-in-PageParameters-td1870381.html 기본적으로 매개 변수를 재구성하는 데 사용할 수있는 고유 한 ID를 전달하는 것이 좋습니다. 개체를 데이터베이스에 유지하고 검색 할 수 없다면 직렬화를 시도하십시오. 이상적이지는 않지만 다음과 같이 시도해보십시오. http://stackoverflow.com/questions/8602489/delete-version-number- in-url – Jamey

+0

먼저 두 개의 생성자를 호출하는 parmas를 가진 생성자와 생성자를 둘 다 가질 수 있습니다. – Kazaag

관련 문제