LDAP 연결 및 SQL 연결을 사용하는 일부 작업에서 옵션을 가져 오기 때문에 Webapp의 한 DropDownChoice 목록이 매우 오래 작성됩니다. 그리고 그 때문에 전체 페이지가 2 초 이상로드됩니다. 너무 많이 말할 것입니다.Wicket : Lazy loading DropDownChoice
그래서 달성하고 싶은 것은 Wicket의 내장 Ajax 기능을 사용하여이 드롭 다운을 게으른로드하는 것입니다.하지만 몇 가지 문제가 있습니다.
나는 일반 DropDownChoice 목록을 만드는 방법을 알고, 나를 위해 큰 일이 간단한 예제 - link (소스 코드 - -> LazyLoadingPage link가 나는 또한 개찰구-예에서 게으른로드 단락을 만드는 방법을 알고. html/LazyLoadingPage.java)
하지만 함께 넣어 예외와 결과 내부 표정 오류가 발생합니다.
<select wicket:id="lazy"></select>
자바 : HTML에서
:
private String selected = "abc";
(...)
add(new AjaxLazyLoadPanel("lazy") {
@Override
public Component getLazyLoadComponent(String id) {
//simulating long time for simple list
try {
Thread.sleep(5000);
}
catch (InterruptedException e) {
throw new RuntimeException(e);
}
return new DropDownChoice<String>(
id, new PropertyModel<String>(this,"selected"),
Arrays.asList("abc","def"));
}
});
}
그리고 난에두고, 개찰구에서 내부 오류를 받고 있어요 여기
내가 그것을 시도하는 방법이다 로그 :
ERROR Unexpected error occurred
Component [content] (path = [0:lazy:content]) must be applied to a tag of type [select], not: '<div wicket:id="content">' (line 0, column 0)
MarkupStream: [markup = jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/devservices/WEB-INF/lib/wicket-extensions-1.5.7.jar!/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.html
인덱스 = 0, current = ''
및 stacktrace.
정말 도움이 될 것입니다. 내가 잘못하고있는 부분이나 더 나은 코드 예제가 좋을 것 같습니다.
는 패널 (또는 조각)에 DDC를 넣어 시도하고 구축/getLazyLoadComponent() – bert
이를 반환은 다른 사람을 도움이 될 것입니다 희망! 완벽하게 작동합니다 - 정말 고마워요 !!! – Horuss
또한 select2 개찰판 구현을 확인하십시오. https://github.com/ivaynberg/wicket-select2를 참조하십시오. – RobAu