On 5/25/07, Janko Muzykant <[EMAIL PROTECTED]> wrote:

i couldn't find a proper answers to the following questions so i would be
grateful if someone could enlighten me a bit.

* how to get a current page that component is rendered on? I know there is
almost no difference between pages and components in T5. in such a case,
how
to get a 'root' component that acts as a Page in T4?


Must of this involves access to the ComponentResources for your component.
ComponentResources is a window into the structure Tapestry builds around
your classes.

@Inject
private ComponentResources _resources;

The page component is available as _resources.getPage().  You can cast from
Component down to the actual class.


* how to get current HttpSession? I know how to get a Session object but it
is not enough as it doesn't have an 'invalidate' method for example.


There's a JIRA issue about adding additional methods to Session.

You can inject the RequestGlobals service, and obtain HttpServletRequest
from it, then the session from the request.


* the same thing with HttpServletRequest. There is a Request but it doesn't
allow to get/set attributes.
* how to get a ServletContext object?


You can work through the RequestGlobals.

If you use these a lot, you can use the ShadowBuilder service to create
services that shadow properties of RequestGlobals, much as the Request
service:

   public Request buildRequest()
   {
       return _shadowBuilder.build(_requestGlobals, "request",
Request.class);
   }

Once a shadow service exists, you can inject that service directly.

I guess these question may look a bit silly but unfortunately they are a
real stoppers in my migration to T5.

umrzyk.




--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

Reply via email to