Hi!

I am looking for a clean way to generically rewrite URLs as follows:

Publicly we want to have an account name to be the first part of the path in 
URLs like so:  /SomeAccount/settings/page1.  Since (I believe) that in Tapestry 
I can't bind the first part of the path to a variable,  I would like to rewrite 
it to something like this: /settings/page1?account=SomeAccount

I would want it to be a generic rewrite along the lines of "if the path doesn't 
start with /login then rewrite the url".  The effect would be that what was a 
path element becomes a variable (whether query variable or context I don't 
really know or care).

I have seen Igor's blog post 
(http://blog.tapestry5.de/index.php/2010/09/06/new-url-rewriting-api/).  I have 
two conceptual hurdles that I can't overcome and would love some help with:

After doing the path manipulation (by way of String manipulation), I need to 
find the Page class by way of a String that looks like "/settings/page1".
How do I pass newly created variable (account) into the 
PageRenderRequestParameters (I guess if knew the Java class from step 1, I 
could check if it implements an interface and if so, typecast it and ask the 
receiving page to generate a link ... but that wouldn't help much either.

It's pretty clear to me how I'd have done it in TS 5.1 
(http://tapestry.apache.org/url-rewriting.html), but URLRewriterRule is not 
supported any more.

Alternatively I could roll my own RequestFilter (like the TimingFilter), but it 
seems there'd have to be a better way?

Any suggestions?

Thanks!
Jochen
---
  joc...@jochenfrey.com
  +1.415.366.0450
  @jochen_frey

Reply via email to