Thanks, That does exactly what I needed. It appears to be called before the new parameters are added so it lets you remove the defaults.
On Mon, May 13, 2013 at 7:27 AM, Alejandro Scandroli < alejandroscandr...@gmail.com> wrote: > Hi Barry > > I've been using a different workaround for this and maybe it could help > you. > You can listen for the DECORATE_PAGE_RENDER_LINK and then "decorate" the > link as you want. > Add something like this to your page. > > @OnEvent(EventConstants.DECORATE_PAGE_RENDER_LINK) > void decoratePageRenderLink(Link link, PageRenderRequestParameters > parameters) > { > if (parameters.getLogicalPageName().equals("YOUR_LOGICAL_PAGE_NAME")) { > for (String name : link.getParameterNames()) > { > link.removeParameter(name); > } > } > } > > Cheers. > Alejandro. > > > > > > > > > > On Thu, May 9, 2013 at 2:44 PM, Barry Books <trs...@gmail.com> wrote: > > > I am using @ActivationRequestParameter and perhaps this is feature under > > some circumstances but currently it seems like a bug to me. > > > > In this case I have a menu item called 'All Prints' that goes to a page > > that might set ARP fields from a search. I'd like the menu link to always > > go to the page without any url parameters so that it will show All > Prints. > > If I just had a simple PageLink I could just set > parameters="{'tag'='All'}" > > but the menu links come from a database so they can be dynamically > added. > > I did get it to work as I wanted by adding a context of 'All' the > pagelink > > and then set tag to null in begin render. The only think I don't like > about > > that is the URL ends up being: > > > > /studio/work/All?tag=Paris (best case would be /studio/work?tag=All > which I > > don't really care for either) > > > > I suspect I'll really fix this by hardcoding a URL in the database and > just > > using <a href="/studio/work/"> but that seems wrong. > > > > I guess it comes down to what PageLink should do. I view it as a way to > go > > to some arbitrary page with a set of arguments I specify. I'm OK with > > leaving context and parameters empty and Tapestry providing defaults but > it > > seems like if I supply a value it should use that and only that. I > suppose > > there may be other cases where this functionality is useful but I can't > > think of any off hand. Perhaps if parameters="null" or parameters="{}" > > would just remove all parameters that might be OK and would solve the > > common case of: > > > > 1. A menu item linking to a page that shows a bunch of things > > 2. The page has search parameters to narrow the list and uses ARP to > store > > them > > > > The menu link does not need to know (and should not know) what the > possible > > set of search criteria is, it just wants to turn them all off. The search > > page can handle them using EventLink to clear individual ones. > > > > > > > > On Wed, May 8, 2013 at 7:06 PM, Howard Lewis Ship <hls...@gmail.com> > > wrote: > > > > > I suspect you are using @ActivationRequestParameter annotatations and > > that > > > is the source of your "sticky" query parameters. > > > > > > It may be a bug that you explicitly supply an empt parameters map to > the > > > PageLink and it still adds the ARP in, but that is likely a feature. > > > > > > To accomplish what you want, you may need to set the ARP fields to null > > > inside beginRender(). > > > > > > > > > > > > On Wed, May 8, 2013 at 6:02 AM, Barry Books <trs...@gmail.com> wrote: > > > > > > > I've got a menu item generated from a database with a pagelink like > > this > > > > > > > > <t:pagelink page="prop:drop.page" context="dropContext" > > > > style="${drop.style}" > > > > >${drop.label}</t:pagelink> > > > > > > > > > > > > I've added a search function to one of the linked pages that adds > > > > parameters to the URL with > > > > > > > > > > > > <t:pagelink ... parameters="search">Page</t:pagelink> > > > > > > > > > > > > I'd like to make the menu item clear the search so I tried this: > > > > > > > > > > > > <t:pagelink page="prop:drop.page" context="dropContext" style="${drop > > > > .style}" parameters="{}">${drop.label}</t:pagelink> > > > > > > > > > > > > but it does not work. It seems Tapestry is clever enough to always > add > > my > > > > search criteria to the parameter map. This would be easy enough to > fix > > if > > > > my menu was not driven from a database but I don't see an easy to > make > > my > > > > generic menu know how to fix this. > > > > > > > > > > > > It would seem useful to be able to say <t:pagelink ... > > > > parameters="null">Page</t:pagelink> but parameters cannot be set to > > null. > > > > > > > > > > > > Any suggestions? > > > > > > > > > > > > > > > > -- > > > Howard M. Lewis Ship > > > > > > Creator of Apache Tapestry > > > > > > The source for Tapestry training, mentoring and support. Contact me to > > > learn how I can get you up and productive in Tapestry fast! > > > > > > (971) 678-5210 > > > http://howardlewisship.com > > > > > >