RE: Problems with WOAction in WO 5.3.1
RE: Problems with WOAction in WO 5.3.1
- Subject: RE: Problems with WOAction in WO 5.3.1
- From: "David Haggerty" <email@hidden>
- Date: Fri, 26 May 2006 09:15:01 -0400
- Thread-topic: Problems with WOAction in WO 5.3.1
If this is not a bug and is intentional behavior, shouldn't WebObjects be able to restore the session and read the wosid in the URL?
In performActionNamed(String name) when I call existingSession() on the URL with the escaped &, WO doesn't find the session. It returns null on existingSession() for a URL like this:
.../wa/ReminderDA/refreshReminder?id=46&wosid=B6fPodDWHmwlDcUs54Uaj0
However, even if I add a third parameter to the URL and use formValueForKey, it doesn't work.
.../wa/ReminderDA/refreshReminder?id=46&test=hello&wosid=B6fPodDWHmwlDcUs54Uaj0
formValueForKey works on id but doesn't work on test or wosid.
If I remove the escape characters, existingSession() works and formValueForKey works properly.
- David
-----Original Message-----
From: Dev WO [mailto:email@hidden]
Sent: Friday, May 26, 2006 5:26 AM
To: Gary Teter
Cc: David Haggerty; email@hidden
Subject: Re: Problems with WOAction in WO 5.3.1
Hello,
This is not a bug!
the & must be escaped in & in a hyperlink, this is the (X)HTML
specification. It was broken in 5.2.4 and corrected in 5.3.1 because
it's the correct behavior.
The remaining bug I know of is when using the href binding with
parameters, it leads to &amp; in code which is incorrect, so it
sort of a double escape.
If you are using formValueForKey it correctly gets every parameters
from the DA URL.
Xavier
Le 26 mai 06 à 00:07, Gary Teter a écrit :
> Yes, this was broken in 5.3.1, but apparently fixed in 5.3.1. That
> is, it was broken with the 5.3.1 that was introduced with (if I
> recall) a Mac OS X Server updated), and may be fixed with the 5.3.1
> that was introduced with Xcode 2.3.
>
> (Perhaps Apple has exceeded its version number budget, and so all
> future WebObjects releases will also be 5.3.1.)
>
> The workaround is to write a method that calls WOContext's
> directActionURLForActionNamed() and manually munge the URL
> yourself, e.g., something like:
>
> String url = context().directActionURLForActionNamed
> ("refreshReminder", getRefreshQueryDictionary());
> url = url.replaceAll("&", "&");
> return url;
>
> On May 25, 2006, at 2:48 PM, David Haggerty wrote:
>
>> We recently upgraded to 5.3.1 from 5.2.4 and are having problems with
>> WOActionURL. We use WOActionURL for Ajax and the & is adding the
>> HTML
>> escape in 5.3.1 but never did this in 5.2.4. This is causing it
>> to not
>> find the session and the URL is then invalid.
>>
>> Any ideas? Is this a bug in 5.3.1?
>>
>> Thanks in advance,
>> David
>>
>> 5.3.1:
>> .../wa/org.yfu.ui.announcement.ReminderDA/refreshReminder?
>> id=46002395450
>> 30766980&wosid=B6fPodDWHmwlDcUs54Uaj0
>> 5.2.4:
>> .../wa/org.yfu.ui.announcement.ReminderDA/refreshReminder?
>> id=46002395450
>> 30766980&wosid=B6fPodDWHmwlDcUs54Uaj0
>>
>>
>> ActionURL1: WOActionURL {
>> actionClass = "org.yfu.ui.announcement.ReminderDA";
>> directActionName = "refreshReminder";
>> queryDictionary = refreshQueryDictionary;
>> }
>>
>> public NSDictionary getRefreshQueryDictionary(){
>> return new NSDictionary(getReminderIterator().getId(), "id");
>> }
>
> --
> WireHose: Smart metadata and personalization for WebObjects.
> http://www.wirehose.com/
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> 40anazys.com
>
> This email sent to email@hidden
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden