James Carman wrote:

Here's how I handle page redirects...

1.  Create a ComponentUtils service interface/implementation...

public interface ComponentUtils
{
   public void redirectToPage( String pageName );

   public void redirectToPage( IPage page );
}

public class ComponentUtilsImpl implements ComponentUtils
{
   private IEngineService pageService;

   public void redirectToPage( String pageName )
   {
       throw new RedirectException( pageService.getLink( false, pageName
).getURL() );
   }

   public void redirectToPage( IPage page )
   {
       redirectToPage( page.getPageName() );
   }

   public void setPageService( IEngineService pageService )
   {
       this.pageService = pageService;
   }
}


2.  In your hivemodule.xml file...

<service-point id="ComponentUtils"
interface="com.myco.web.service.ComponentUtils">
       <invoke-factory>
           <construct class="com.myco.web.service.impl.ComponentUtilsImpl">
               <set-object property="pageService"
value="service:tapestry.services.Page"/>
           </construct>
       </invoke-factory>
</service-point>

3.  Then, in your page/component, just inject the ComponentUtils service...

@InjectObject("service:myco.ComponentUtils")
public abstract ComponentUtils getComponentUtils();

4.  Then use it!

public void someListenerMethod()
{
 // Do something.
 getComponentUtils().redirectToPage( "Home" );
}


-----Original Message-----
From: Andrea Chiumenti [mailto:[EMAIL PROTECTED] Sent: Saturday, February 25, 2006 10:54 AM
To: Tapestry users
Subject: Page rediraction problem

Hello , I'm trying to redirect users to the Home page when they are not in role, but this doesn't happen and I don't kwno why, since the debugger checks correctly, so it must be my code!

here it is what I'm trying to execute.

public void renderPage(IMarkupWriter writer, IRequestCycle cycle) {
JFlyPrincipal principal = getPrincipal(); if ( (principal == null) || (!principal.isUserInRole(getRoles())) ) { cycle.activate("Home"); }
       super.renderPage(writer, cycle);
}

Could someone help me please ?

Regards,
kiuma

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Thank you it perfectly worked. But I wonder why to throw an exception to go to another page (yes in my own case it was right to throw an exc.). For example if I change user data, after post I would like to see his card, why should I use an exception to go to that page, since it's not a real exception?

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to