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

Reply via email to