Tôi có danh sách có liên kết ajax trong mỗi hàng. liên kết này quản lý quá trình xóa hàng của riêng mình. toàn bộ danh sách được gói với WebMarkupContainer. Bằng cách nhấn vào liên kết, được gọi là logic tiếp theo 1) mục bị xóa khỏi DB. 2) mô hình danh sách cập nhật 3) target.add (wmc) - thêm WebMarkupContainer vào ajax để cập nhậtThành phần WicketNotFoundException: Thành phần đã bị xóa khỏi trang
vì danh sách có sau đó mỗi phần tử loại bỏ hành động bị rơi trên màn hình hiển thị. Vì vậy, sau khi trang làm mới tôi thấy hành động đã được thực hiện, nhưng vấn đề xảy ra sau đó
IKickListener onKickListener = new IKickListener() {
@Override
public void onKickListener(ListItem<Consultant> item, AjaxRequestTarget target) {
Cons modelObject = item.getModelObject();
mUserDAO.remove(modelObject.accountId, getId());
updateListModel();
target.add(mWmc);
target.appendJavaScript("console.log("kicked")");
}
};
mWmc = new WebMarkupContainer("wmc");
mWmc.setOutputMarkupId(true);
add(mWmc);
ListView listView = new ConsListView("consList", new PropertyModel<List<? extends Cons>>(this, "consultants"), onKickListener);
mWmc.add(listView);
và cư phương pháp danh sách của tôi
@Override
protected void populateItem(final ListItem<ConsPanel.Cons> item) {
item.add(new IndicatingAjaxLink("actionKick") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
mKickListener.onKickListener(item, target);
}
});
}
sau đó tôi recived tiếp theo stack trace
org.apache.wicket.core.request.handler.ComponentNotFoundException: Component 'consPanelPlace:cons:wmc:consList:2:actionKick' has been removed from page.
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:177)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
tôi sử dụng wicket 7.0.0-M5
CẬP NHẬT Tôi đã tìm thấy, rằng khi tôi có nhiều hơn thì 1 mục trong danh sách, ajax gọi lại đính kèm chỉ cho một đầu tiên. Nhưng trên hành động nhấp đã xóa tất cả các mục ngoại trừ một mục. Ngoài ra liên kết ajax được gọi là mục đếm thời gian.
Tần suất bạn phải nhấp để lỗi này xuất hiện? – svenmeier
mỗi lần khi tôi có nhiều hơn thì một mục –