지금까지 몇 년 동안 Wicket을 사용하고 있지만이 시나리오에 사용할 링크 구성 요소를 아직 이해하지 못합니다.
북마크 가능한 페이지의 두 페이지 매개 변수에 의한 쿼리 인 데이터베이스의 두 항목을 나열하는 상태 비 저장 북마크 가능한 페이지를 표시하고 싶습니다. 이러한 각 항목은 삭제 가능해야합니다 (일반적인 확인 대화 상자 사용). 모달 "이 항목을 삭제 하시겠습니까?"대화 상자를 확인한 후 동일한 상태 비 저장 북마크 가능 페이지로 리디렉션되어야합니다. 따라서 동일한 페이지 매개 변수로 인해 데이터베이스가 다시 쿼리되고 이제 삭제 후 항목이 표시됩니다.
항목을 표시하기 위해 DataView
구성 요소를 만들었습니다 ListDataProvider
. 삭제 링크는 다음과 같이 생성됩니다.
... new ListDataProvider<>(entries) {
public void populateItem(Item<MyEntry> item) {
final MyEntry entry = item.getModelObject();
...
item.add(new Link<Long>("delete", Model.of(entry.getId())) {
public void onClick() {
// todo: delete
System.out.println("delete " + getModelObject().longValue());
getRequestCycle().setResponsePage(MyPage.class, getPageParameters());
}
}
...
}
안타깝게도 페이지 버전 번호는 "삭제"를 클릭 할 때마다 증가합니다.
페이지의 URL에 이미 pageId가있는 경우 처음 에는 상태 비 저장 이 아닙니다 .
귀하의 경우에는 StatelessLink
. 그러나 페이지에서 다른 상태 저장 구성 요소를 사용하지 않도록해야합니다. wicket-devutils의 StatelessChecker
리스너를 사용하여 다른 상태 저장을 찾을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다