one other question. the original page map name is still 'null'. is this ok?
Ittay Dror wrote: > ok, i did the same magic in my coding strategy and it works. in new tabs > the url now looks like > http://localhost/page/SomePage?wicket:bookmarkablePage=wicket-0:com.package.SomePage > > > > can someone explain the mechanism to me? also, why should i take care of > this and not WebRequestCodingStrategy? > > thanx, > ittay > > Ittay Dror wrote: >> well, this is the code in WebRequestCodingStrategy: >> public final CharSequence encode(final RequestCycle requestCycle, >> final IRequestTarget requestTarget) >> { >> // first check whether the target was mounted >> CharSequence path = pathForTarget(requestTarget); >> if (path != null) >> { >> CharSequence prefix = urlPrefix(requestCycle); >> final AppendingStringBuffer buffer = new >> AppendingStringBuffer(prefix.length() >> + path.length()); >> buffer.append(prefix); >> buffer.append(path); >> return requestCycle.getOriginalResponse().encodeURL(buffer); >> } >> .... >> >> the page (target) is indeed mounted, so pathForTarget goes to the >> encoding strategy to encode the path. in case the target was not >> mounted, it would have encoded the url itself (in my case, the target >> is IBookmarkablePageRequestTarget) >> >> the code there is less than trivial, should i copy & paste? can i >> reference it somehow? >> >> >> ittay >> >> >> Matej Knopp wrote: >>> Hmm.. The problem with this kind of bugs is that it's very difficult >>> to reproduce. >>> >>> IMHO The problem is in this line: >>> else {document.location.href = >>> '/page/SomePage;jsessionid=E43E09C7B61190F3C8C5E98CB988F21F?';} >>> >>> The url should contain pagemap name (something like wicket-1). >>> >>> In wicket-1.2 the url is built in PageMapChecker#renderHead >>> (WebPage.java line 388 - >>> IBookmarkablePageRequestTarget current = >>> (IBookmarkablePageRequestTarget)target; >>> BookmarkablePageRequestTarget redirect = new >>> BookmarkablePageRequestTarget( >>> getSession().createAutoPageMapName(), current.getPageClass(), >>> current.getPageParameters()); >>> url = cycle.urlFor(redirect); >>> ) >>> >>> I wonder why the generated url doesn't contain the pageMap name. >>> >>> -Matej >>> >>> Ittay Dror wrote: >>>> further investigation shows that for IE and openning new windows, it >>>> works fine - a PageMap instance is created, and the page loads fine. >>>> >>>> i've also started firefox with a new profile (no extensions), to >>>> make sure it's not extension related, and no, it happens there also, >>>> and also when i open a new window instead of new tab. it seems to be >>>> related to differences in cookie (session) handling between firefox >>>> and IE. >>>> ittay >>>> >>>> Ittay Dror wrote: >>>>> Hi, >>>>> >>>>> I'm using firefox. when i duplicate a tab, the tab reloads in an >>>>> infinite loop. >>>>> >>>>> this is the reason: >>>>> <script type="text/javascript"><!--//--><![CDATA[//><!-- >>>>> var pagemapcookie = getWicketCookie('pm-nullwicket'); >>>>> if(!pagemapcookie && pagemapcookie != >>>>> '1'){setWicketCookie('pm-nullwicket',1);} >>>>> else {document.location.href = >>>>> '/page/SomePage;jsessionid=E43E09C7B61190F3C8C5E98CB988F21F?';} >>>>> >>>>> //--><!]]></script> >>>>> >>>>> </head> >>>>> <body onunload="deleteWicketCookie('pm-nullwicket');"> >>>>> >>>>> >>>>> what happens is that the pagemapcookie is there when the page is >>>>> rendered, because the previous page was not unloaded, so the >>>>> document's href is changed to itself. of course, when the page >>>>> loads, the cookie is still 1, so the loop continues. the same will >>>>> happen if i just open a new tab and load the same url. >>>>> >>>>> what gives? >>>>> >>>>> >>>>> also, the code that writes this script is WebPage.PageMapChecker >>>>> the comment in the code is: >>>>> /** >>>>> * Tries to determine whether this page was opened in a new >>>>> window or tab. >>>>> * If it is (and this checker were able to recognize that), a >>>>> new page map >>>>> * is created for this page instance, so that it will start >>>>> using it's own >>>>> * history in sync with the browser window or tab. >>>>> */ >>>>> >>>>> i've tried to debug this, but it doesn't look like a new PageMap is >>>>> created (i don't use it, so the PageMap instance is the default >>>>> one). so it seems i *don't* get a history per tab. >>>>> can/should i remove the AutomaticMultiWindowSupport setting? >>>>> thanx, >>>>> ittay >>> >>> >>> _______________________________________________ >>> Wicket-user mailing list >>> Wicket-user@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/wicket-user >>> >> >> > > -- =================================== Ittay Dror, Chief architect, openQRM TL, R&D, Qlusters Inc. [EMAIL PROTECTED] +972-3-6081994 Fax: +972-3-6081841 http://www.openQRM.org - Keeps your Data-Center Up and Running _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user