Pass the pageId as a query string parameter. PageParameters params = new PageParameters(); params.set("pageId", getPage().getPageId()); theUrlToTheReference = requestCycle.urlFor(yourResRef, params);
Then in the IResource (better extend AbstractResource) just read it from the request parameters. Storing the pageId in the session is not OK because the user may open two different pages in separate tabs/windows and this will break. Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Tue, Sep 9, 2014 at 3:01 PM, Tobias Soloschenko < tobiassolosche...@googlemail.com> wrote: > Thanks again for the fast answer. My code now looks this way: > > Field declaredField = > WebSession.get().getClass().getSuperclass() > .getDeclaredField("pageId"); > > declaredField.setAccessible(true); > AtomicInteger i = (AtomicInteger) > declaredField.get(WebSession.get()); > Page page = (Page) WebSession.get().getPageManager() > .getPage(i.get()); > > AjaxRequestTarget newAjaxRequestTarget = ((WebApplication) > Application.get()) > .newAjaxRequestTarget(page); > > RequestCycle.get().scheduleRequestHandlerAfterCurrent( > newAjaxRequestTarget); > > I dont know how to get the current pageId but from the Session. The page at > this place is null. :-( > > > > 2014-09-09 13:53 GMT+02:00 Martin Grigorov <mgrigo...@apache.org>: > > > On Tue, Sep 9, 2014 at 2:05 PM, Tobias Soloschenko < > > tobiassolosche...@googlemail.com> wrote: > > > > > Hi again, > > > > > > I tried out that code you mentioned here. > > > WebSession.get().getPageManager().getPage(int i) returns > IManageablePage > > > which is not applicable as argument for newAjaxRequestTarget. > > > > > > > cast it > > it is known that in your environment you don't use any custom > > IManageablePage/IRequestablePage impls (see IPageFactory) > > > > > > > > > > The second thing is how do I get the instance of a page by class with > the > > > last page id not from within a component (this would be simple > > getPage())? > > > > > > > I didn't get this > > Please re-phrase > > > > > > > > > > 2014-09-09 11:51 GMT+02:00 Martin Grigorov <mgrigo...@apache.org>: > > > > > > > I've re-read the message and I think I got it. > > > > What you really need is a mounted resource > > > > (WebApplication#mountResource(someResourceReference)) > > > > To get a url to it use: theUrl = requestCycle.urlFor(sameResRef, > > > > parametersWithPageId) > > > > Wicket.Ajax.get({"u": theUrl, ...}) > > > > In IResource#respond() you can create AjaxRequestTarget with: > > > > > > > > Page page = session.getPageManager().get(parameters.get("pageId")) > > > > target = webApplication.newAjaxRequestTarget(page) > > > > requestCycle.scheduleRequestHandlerAfterCurrent(target); > > > > page.send(page, Broadcast.BREADTH, new SomeEvent(target)) > > > > > > > > in SomeComponent#onEvent() use someEvent.getTarget().add(this) to add > > the > > > > component when SomeEvent is broadcasted > > > > > > > > Martin Grigorov > > > > Wicket Training and Consulting > > > > https://twitter.com/mtgrigorov > > > > > > > > > > > > On Tue, Sep 9, 2014 at 12:40 PM, Richter, Marvin < > > > > marvin.rich...@freenetdigital.com> wrote: > > > > > > > > > What you are looking for is the Wicket Event mechanism. > > > > > > > > > > This allows you to send a broadcast to a specified Component (e.g. > > the > > > > > current page) and a payload (e.g. your custom event type which > > contains > > > > > information). > > > > > > > > > > In the Components which should react on the event you override the > > > method > > > > > onEvent, check if the event is of your type and if so, do with the > > > event > > > > > payload whatever you want. > > > > > > > > > > Check out > > > > > > > > > > > > > > > http://www.wicket-library.com/wicket-examples/events/wicket/bookmarkable/org.apache.wicket.examples.source.SourcesPage?1&SourcesPage_class=org.apache.wicket.examples.events.DecoupledAjaxUpdatePage > > > > > for a good example. > > > > > > > > > > Best, > > > > > Marvin > > > > > > > > > > -----Original Message----- > > > > > From: Tobias Soloschenko [mailto:tobiassolosche...@googlemail.com] > > > > > Sent: Tuesday, September 09, 2014 11:31 AM > > > > > To: users@wicket.apache.org > > > > > Subject: Re: Global Ajax Event Handler > > > > > > > > > > Hi, > > > > > > > > > > thanks for the answer, but this is only a client side event hook > not > > > for > > > > > processing a request to the Server. I added a pseudo code to the > > > question > > > > > of martin who asked me what I exactly want to do. > > > > > > > > > > Thanks anyway for the fast answer! > > > > > > > > > > kind regards, > > > > > > > > > > Tobias > > > > > > > > > > > Am 09.09.2014 um 11:06 schrieb Tom Götz <t...@decoded.de>: > > > > > > > > > > > > See > https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax > > , > > > > > section "Global Ajax call listeners“. > > > > > > > > > > > > Cheers, > > > > > > -Tom > > > > > > > > > > > > > > > > > >> On 09.09.2014, at 10:58, Tobias Soloschenko < > > > > > tobiassolosche...@googlemail.com> wrote: > > > > > >> > > > > > >> Hi all, > > > > > >> > > > > > >> is there a way to register a global ajax event handler within > > > Wicket? > > > > > For normal there is the AbstractDefaultAjaxBehavior which is added > > to a > > > > > component. And then the CallbackScript can be obtained and used > > within > > > a > > > > > OnDomReadyHeaderItem for example. > > > > > >> > > > > > >> Is there a way to do this on application level so that Im able > to > > > get > > > > > the CallbackScript from the instantiated Application? > > > > > >> > > > > > >> kind regards > > > > > >> > > > > > >> Tobias > > > > > >> > > > --------------------------------------------------------------------- > > > > > >> 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 > > > > > > > > > > > > > > > > > > > >