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

Reply via email to