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
>> [email protected]
>> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user