Ho una lista con un collegamento Ajax in ogni riga. questo link gestisce il proprio processo di rimozione delle righe. tutta la lista avvolta con WebMarkupContainer. Premendo il collegamento, chiamato next logic 1) elemento rimosso dal DB. 2) elenco aggiornato modello 3) target.add (WMC) - aggiungere WebMarkupContainer di ajax per l'aggiornamentoComponente WicketNotFoundException: il componente è stato rimosso dalla pagina
dal lista ha più di un elemento di ciascun rimuovere l'azione si è schiantato su di rendering palco. Così, dopo la pagina di aggiornamento che vedo è stato fatto che l'azione, ma il problema è accaduto dopo che
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);
e popolano il metodo della mia lista
@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);
}
});
}
poi ho mi hanno assegnato la prossima traccia dello stack
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)
I utilizzare wicket 7.0.0-M5
AGGIORNAMENTO Ho trovato che quando ho più di 1 elemento nell'elenco, il callback ajax è associato solo al primo. Ma con l'azione clic rimosso tutti gli elementi tranne uno. Anche il collegamento ajax chiamato elementi conta volte.
Con quale frequenza è necessario fare clic per visualizzare questo errore? – svenmeier
ogni volta che ho più di un articolo –