Re: string-binding problem

Christian Sell <[email protected]> Wed, 15 Jan 2003 18:53:59 +0100
Newsgroups gmane.comp.java.tapestry.devel
Message-ID <[email protected]>
erm, sorry, but I am not with you. Do you suggest this as a workaround 
for the (otherwise quite simple) thing I am doing? And where do you 
suggest this code to be located?

It still seems to me that this is more a case for the bugtracker than 
for the FAQ. Correct me if I am wrong..


Simon Robins wrote:
> Maybe this problem should be in the FAQ.
> 
> You need to do something like this:
> 
> IEngineService pageService = 
> cycle.getEngine().getService(IEngine.PAGE_SERVICE);
> 
> Gesture gesture = pageService().buildGesture(cycle, null, new String[] { 
> getPage().getName() } );
> 
> throw new RedirectException(gesture.getAbsoluteURL());
> 
> Regards,
> 
> Simon
> 
> On Wednesday, January 15, 2003, at 05:10  pm, Christian Sell wrote:
> 
>> could somebody confirm that the issue described below is a bug? Should 
>> I enter it into the bug tracker?
>>
>> As it turns out, the only way to get around this is to change the 
>> application design to be like the workbench demo, where after changing 
>> the locale the user is directed to another page. If instead you want 
>> to redisplay the same page, it will not show the new localization.
>>
>> regards
>>
>> Christian Sell wrote:
>>
>>> to answer my question regarding a workaround:
>>> I tried this:
>>>         <binding name="value" expression='getString("message")'/>
>>> this forced the binding to be evaluated every time - BUT:
>>> The string table for the component is created lazily based on the 
>>> current locale and cached afterward. It is NOT recreated if the 
>>> locale changes, and therefore wrong if the same component is reused 
>>> in a subsequent request. See method 
>>> AbstractComponent.getString(String key).
>>> it seems I cannot proceed without hacking tapestry - or redesigning 
>>> my app
>>> Christian
>>> Christian Sell wrote:
>>>
>>>> Hello,
>>>>
>>>> On one of my pages, I am using an Insert component with a 
>>>> string-binding parameter. On the same page, I have a form with a 
>>>> Select component which allows setting the Locale. After setting the 
>>>> locale, the same page is redisplayed.
>>>>
>>>> Now it turns out that when the locale is set, the Insert element 
>>>> does not change its appearance according to the new locale. Only 
>>>> after visiting another page and returning to the previous one, the 
>>>> new localized string is shown.
>>>>
>>>> I went to the source code and discovered that string-bindings are 
>>>> only evaluated once when the component is first created - in method 
>>>> ParameterManager.setup(IRequestCycle cycle). It seems that when the 
>>>> same page is redisplayed after changing the locale, this does not 
>>>> happen.
>>>>
>>>> I consider this a bug. My suggestion is that 
>>>> StringBinding.isInvariant() should return false, and not true as is 
>>>> currently the case.
>>>>
>>>> objections? Or is there a workaround?
>>>>
>>>> Christian
>>>>
>>>>
>>>>
>>>> -------------------------------------------------------
>>>> This SF.NET email is sponsored by: FREE  SSL Guide from Thawte
>>>> are you planning your Web Server Security? Click here to get a FREE
>>>> Thawte SSL guide and find the answers to all your  SSL security issues.
>>>> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
>>>> _______________________________________________
>>>> Tapestry-developer mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/tapestry-developer
>>>>
>>> -------------------------------------------------------
>>> This SF.NET email is sponsored by: Take your first step towards 
>>> giving your online business a competitive advantage. Test-drive a 
>>> Thawte SSL certificate - our easy online guide will show you how. 
>>> Click here to get started: 
>>> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en
>>> _______________________________________________
>>> Tapestry-developer mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/tapestry-developer
>>
>>
>>
>>
>>
>> -------------------------------------------------------
>> This SF.NET email is sponsored by: Take your first step towards giving 
>> your online business a competitive advantage. Test-drive a Thawte SSL 
>> certificate - our easy online guide will show you how. Click here to 
>> get started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en
>> _______________________________________________
>> Tapestry-developer mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/tapestry-developer
>>
> 
> 




-------------------------------------------------------
This SF.NET email is sponsored by: A Thawte Code Signing Certificate 
is essential in establishing user confidence by providing assurance of 
authenticity and code integrity. Download our Free Code Signing guide:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0028en