Put a container (WebMarkupContainer?) around components you want to update, atatch the behavior to that container and make sure the comapoent you want to update are "dynamic": meaning that theirs "state" should change every time they are rendered.
Best, Ernesto On Wed, Nov 11, 2009 at 10:24 AM, Giambalvo, Christian < christian.giamba...@excelsisnet.com> wrote: > You're right Ernesto, your example works, but what if I want to replace a > whole panel and not just the model of a label? > > > -----Ursprüngliche Nachricht----- > Von: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com] > Gesendet: Mittwoch, 11. November 2009 10:15 > An: users@wicket.apache.org > Betreff: Re: AbstractAjaxTimerBehavior causes exception > > Well I think it all boils down to the explanation a gave on my first > e-mail: > if you replace the component with a new one that does not have the behavior > then you will get an exception (the same will happend if you remove the > behavior during a round trip). I guess Martin was just trying to say that > you should use the same label...? Did you try the code I posted? It does > work ;-) > > Cheers, > > Ernesto > > On Wed, Nov 11, 2009 at 10:06 AM, Giambalvo, Christian < > christian.giamba...@excelsisnet.com> wrote: > > > Hi Martin, > > > > this doesn't work. > > > > @Override > > protected void onTimer(AjaxRequestTarget target) > > { > > Label t2 = new Label("message", "Test " + testCounter); > > t2.setOutputMarkupId(true); > > test = t2; > > testCounter++; > > target.addComponent(test); > > } > > It doesn't throw an exception, but the t2 didn't show up. > > I think this is because t2 isn't added to the page. > > That's why there is Component#replaceWith(Component). > > > > Greets > > > > -----Ursprüngliche Nachricht----- > > Von: Martin Grigorov [mailto:mcgreg...@e-card.bg] > > Gesendet: Mittwoch, 11. November 2009 09:59 > > An: users@wicket.apache.org > > Betreff: Re: AbstractAjaxTimerBehavior causes exception > > > > On Wed, 2009-11-11 at 09:21 +0100, Giambalvo, Christian wrote: > > > Hi all, > > > > > > > > > > > > maybe i found a bug. > > > > > > Don't know if I'm doing something wrong. > > > > > > But it's a simple usecase. > > > > > > > > > > > > Following code produces an exception: > > > > > > > > > > > > public class HomePage extends WebPage { > > > > > > > > > > > > private static final long serialVersionUID = 1L; > > > > > > > > > > > > private static int testCounter = 0; > > > > > > > > > > > > public HomePage(final PageParameters parameters) { > > > > > > > > > > > > // Add the simplest type of label > > > > > > final Label test = new Label("message", "If you see this > message > > > wicket is properly configured and running"); > > > > > > test.add(new AbstractAjaxTimerBehavior(Duration.seconds(1)) > > > > > > { > > > > > > @Override > > > > > > protected void onTimer(AjaxRequestTarget target) > > > > > > { > > > > > > Label t2 = new Label("message", "Test " + testCounter); > > > > > > test.replaceWith(t2); > > here you need to make : test = t2; > > > > > > testCounter++; > > > > > > target.addComponent(test); > > > > > > } > > > > > > }); > > > > > > > > > > > > add(test); > > > > > > } > > > > > > } > > > > > > > > > > > > Exception: > > > > > > Root cause: > > > > > > java.lang.IllegalStateException: No Page found for component [Component > > > id = message] > > > at org.apache.wicket.Component.getPage(Component.java:1754) > > > at org.apache.wicket.RequestCycle.urlFor(RequestCycle.java:872) > > > at org.apache.wicket.Component.urlFor(Component.java:3286) > > > at > > > > org.apache.wicket.behavior.AbstractAjaxBehavior.getCallbackUrl(AbstractA > > > jaxBehavior.java:124) > > > at > > > > org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getCallbackScript(Abstr > > > actAjaxTimerBehavior.java:127) > > > at > > > > org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getJsTimeoutCall(Abstra > > > ctAjaxTimerBehavior.java:120) > > > at > > > > org.apache.wicket.ajax.AbstractAjaxTimerBehavior.respond(AbstractAjaxTim > > > erBehavior.java:163) > > > at > > > > org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDef > > > aultAjaxBehavior.java:299) > > > at > > > > org.apache.wicket.request.target.component.listener.BehaviorRequestTarge > > > t.processEvents(BehaviorRequestTarget.java:119) > > > at > > > > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(Ab > > > stractRequestCycleProcessor.java:92) > > > at > > > > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java > > > :1250) > > > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) > > > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) > > > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > > > at > > > > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468 > > > ) > > > at > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java: > > > 301) > > > at > > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHan > > > dler.java:1157) > > > at > > > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > > > at > > > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:2 > > > 16) > > > at > > > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > > > at > > > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > > > at > > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > > > at > > > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandler > > > Collection.java:230) > > > at > > > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.jav > > > a:114) > > > at > > > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > > at org.mortbay.jetty.Server.handle(Server.java:326) > > > at > > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > > > at > > > > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne > > > ction.java:915) > > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) > > > at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > > > at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > > > at > > > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: > > > 409) > > > at > > > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java > > > :582) > > > > > > > > > > > > Greets > > > > > > Chris > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >