Dario,

Thanks for your reply. I tried this but it broke my application, and I couldn't 
find out why. However, I found another way to solve the problem. Thanks for the 
hint though.

Julian


----- Original Message ----
From: DarĂ­o Vasconcelos <[EMAIL PROTECTED]>
To: Tapestry users <[email protected]>
Sent: Sunday, October 29, 2006 3:46:23 PM
Subject: Re: Problem with too long urls

If you don't want to mess with DataSqueezers and other esoterical stuff, you
could use the FormLinkRenderer by MindBridge, you can download it from
http://www.t-deli.com/.

In short, specifying the "renderer" attribute of any DirectLink will
automatically turn the request into a POST instead of GET. I think there's
an example in the t-deli page.

<span jwcid="@DirectLink"
 renderer="ognl:@[EMAIL PROTECTED]"
 ...


Regards,

Dario

On 10/29/06, Sam Gendler <[EMAIL PROTECTED]> wrote:
>
> Generally, this occurs because Tapestry has been forced to serialize
> an object, or a collection of objects, to the form in order ensure
> consistency when the form is rewound.  You can prevent this by
> defining a 'DataSqueezer' for your entities which will allow you to
> send a simple primary key from which the object can be loaded, rather
> than having to serialize the entire state of the object to the
> browser.  Also, wherever possible, make your loops and conditionals
> volatile, so that the collection that is the source of the loop
> doesn't have to get serialized at all.  Of course, this runs the risk
> of introducing stale link errors, so must be used judiciously.  You
> will surely be able to determine the constructs which need to be
> modified by taking a look at the source of your form (or the query
> string params) and you'll see long uuencoded text strings which are
> serialized objects.
>
> There is a page describing the DataSqueezer concept on the tapestry
> wiki.  I've also attached my EnumSqueezer as an example.  You'll also
> need the entries equivalent to the following in your hivemodule.xml
> file.
>
>     <service-point id="EnumSqueezer"
>         interface="org.apache.tapestry.util.io.SqueezeAdaptor">
>         <invoke-factory>
>             <construct class="com.euroclick.gb.web.utils.EnumSqueezer"/>
>         </invoke-factory>
>     </service-point>
>
>     <contribution configuration-id="tapestry.data.SqueezeAdaptors">
>         <adaptor object="service:EnumSqueezer"/>
>     </contribution>
>
>
> On 10/29/06, Julian Sinai <[EMAIL PROTECTED]> wrote:
> > Hi--I'm having a problem with Tapestry URLs from a DirectLink in my
> application. It seems to only be a problem in Internet Explorer. My guess is
> the URLs are too long. I've tried the documented advice to use the
> DirectLink service encoder, but that doesn't shorten the session information
> that gets added to the query string. I've also tried the FormLinkRenderer
> from the Tapestry Deli site, but that didn't work at all. I've also tried
> @Persist("client") technique but I don't think I understand it properly
> because it broke my app.
> >
> > I don't know if this makes any difference, but the DirectLink in
> question is inside a custom component, although it's a very simple one.
> Also, I'm using Tap 4.0.2.
> >
> > Any advice is greatly appreciated.
> > Thanks,
> > Julian
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
So little time and so little to do.
  -- Oscar Levine




Reply via email to