Whoa, that's some amazing stuff!

Thanks Andreas. :)

-Filip

On 2009-02-06 00:24, Andreas Andreou wrote:
Hi, see http://tuckey.org/urlrewrite/manual/2.6/ (i see they also have
a 3.2 version)
Just define some outbound-rules (instead of rules) for the cases
you're interested, i.e.

    <outbound-rule>
    <from>^/app/category/product/([0-9]+)?venue=([a-z]+)&locale=([a-z]+)$</from>
    <to>/app/$2/$3/category/product/$1</to>
    </outbound-rule>


On Fri, Feb 6, 2009 at 12:14 AM, xfile80303 <l...@grokers.net> wrote:
Hi Andreas,

Oh, please don't mistake me for an expert on T5 by any means.  :)  I just
don't see how the filter you mention would help with links generated by T5.

For instance, let's say I put the filter in place, and I give a user the URL
to access the site:

/app/venue_name/en_US/category/product/UUID (fill in with imaginary actual
values, if you will)

The filter could strip out the venue_name, locale, whatever and put them as
actual parameters to the URL... something like:

/app/category/product/UUID?venue=venue_name&locale=en_US

And the URL would get passed in this way to T5 and the page would render, no
problem.

However, once on the page, let's say there's a link to another product.
That link URL would be generated by T5 and look something like:

/app/category/product/UUID2?venue=venue_name&locale=en_US

and thus, a user will see this, bookmark it, send it in email to friends,
etc. instead of the "nicely" formatted URL that we started with.  So the
filter only makes it possible to map "published" URLS to something T5 can
understand, and does not allow us to filter "outgoing" URLs to change them
back to "nice" ones.

Does it?

Cheers,

Levi


Andreas Andreou-2 wrote:
I'm really a T5 novice - what i was saying is that if you do find a
way to have that
info in the url (nomatter how, even as query params + i'm sure it's
possible), you
can use that filter to completely transform the look of the urls ...

On Thu, Feb 5, 2009 at 10:56 PM, xfile80303 <l...@grokers.net> wrote:
Thank you Andreas.

I'm not sure I understand how this would help me with issue #2 (as
defined
in my original posting).  Can you enlighten me?

Cheers,

Levi


Andreas Andreou-2 wrote:
An alternative is http://tuckey.org/urlrewrite/
And since Tapestry always calls the servlet container to encode the url,
urlrewrite will work for both generating urls (to output in html)  and
parsing
them (incoming)

On Thu, Feb 5, 2009 at 10:31 PM, xfile80303 <l...@grokers.net> wrote:
Hi Thiago,

Thanks for taking the time.  I believe I need to do some clarification
however.

The example URL I mentioned is order specific.  Meaning it would not
make
sense to have the venu_name (or others of these URL parameters) to be
at
the
end of the URL.  They need to go into the URL before the page name
structure
in order to be purposeful.

Cheers,

Levi


Thiago H. de Paula Figueiredo wrote:
Em Thu, 05 Feb 2009 14:17:32 -0300, xfile80303 <l...@grokers.net>
escreveu:

Greetings all,
Hello! :)

Specifically, I would like to manipulate the URLs such that I can
have
"nice" RESTful style URLs which feed information into the page
ultimately
being rendered.
Tapestry is incredibly RESTful, so I guess you don't have to do much
to
accomplish what you want. :)

For example:
/app/venue_name/en_US/category/product/UUID
where product would be the rendering page, UUID could be the
activation
context (which, if I understand correctly T5 will handle already).
However, the "venue_name" and locale are not actual pages and are
simply
information which is to be gleaned from the URL and passed to the
page
so it can render as specified.
All you need to do is to ignore the venue_name and locale parameters.
thedailytube.com, a website created by some guy in this list I always
forget the name (I'm sorry . . .), does what you need in the video
pages.
Look at this URL:

http://www.thedailytube.com/video/15794/christian-bales-freak-out-remix

The video page uses the first parameter (15794) as the id of the video
to
be shown. The second parameter is there just for search engine
purposes.
Try http://www.thedailytube.com/video/15794/tapestry5rules. It gives
you
exactly the same page as the original URL. ;)

As other posts have suggested, it would seem to me that any
manipulation
of the URL would have to happen in such a way that Tapestry would
properly 1) parse these URL "parameters" and pass them into the
system
for use by the
page,
One advice is to use EventContext. It is a little hard to find in the
documentation (EventContext section in
http://tapestry.apache.org/tapestry5/guide/event.html), but any event
handler method, including onActivate(), can have a single EventContext
parameter. It provides you two methods: one with the parameter count,
other that returns the value of the n-th parameter. Having an
onActivate(EventContext context) method makes it really easy to deal
with
different parameters in the activation context, even optional
parameters.



and 2) understand these "parameters" would need to be in Tapestry
generated links to preserve this data from link to link (page to
page).
There has been mention of using a RequestFilter or a Dispatcher to do
this, but I have two concerns with this: 1) I am not sure how I would
modify the Request (at all?) so Tapestry internals would find the
page
to render
(remove the venu_name and locale parameters and let Tapestry locate
the
category/product page)
As stated above, you don't need to change the request, just ignore the
parameters you don't need.

2) Even if I was able to modify the Request, how
would I accomplish #2 above, so generated links would contain this
data?
That's the hard part here. One solution is to remember to add the
parameters in the context of all PageLinks. Remember: the activation
context can have parameters that will be ignored. In this case, the
activation context would be a List, not a single value Most examples
use
an id as the activation context, but that's not the only way to do it.
A
more automated solution could be the decoration of the LinkFactory
service
to automatically add the parameters. I haven't tested it, though.

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



--
View this message in context:
http://n2.nabble.com/-T5--URL-Manipulation-tp2276010p2277094.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




--
Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
Tapestry / Tacos developer
Open Source / JEE Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



--
View this message in context:
http://n2.nabble.com/-T5--URL-Manipulation-tp2276010p2277221.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




--
Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
Tapestry / Tacos developer
Open Source / JEE Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



--
View this message in context: 
http://n2.nabble.com/-T5--URL-Manipulation-tp2276010p2277645.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to