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
