neat


except there are some comments that i can't read ...

=)

Sven Homburg wrote:
i think this is they way you need:

    @InjectPage(value = "Login")
    private ILoginPage _loginPage;

    /**
     * check for user is authentificated if requested page implements
IRestrictedPage.
     *
     * @return
     */
    @OnEvent(value = "activate")
    Object checkPageAccessPermission()
    {
        //
        // Page nur fuer den angemeldeten User erreichbar ?
        //
        if (this instanceof IRestrictedPage)
        {
            if (!isLoggedIn())
                return _loginPage;
        }

        return null;
    }


2008/2/11, Travis McLeskey <[EMAIL PROTECTED]>:
Unfortunately, for me, returning false produced this nasty-looking
stack trace:

[ERROR]
org.apache.tapestry.internal.services.DefaultRequestExceptionHandler
Processing of request failed with uncaught exception: Page Start did
not generate any markup when rendered. This could be because its
template file could not be located, or because a render phase method
in the page prevented rendering.
java.lang.RuntimeException: Page Start did not generate any markup
when rendered. This could be because its template file could not be
located, or because a render phase method in the page prevented
rendering.
        at
org
.apache
.tapestry
.internal
.services
.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:58)
        at
$
PageMarkupRenderer_11806dbfeb2
.renderPageMarkup($PageMarkupRenderer_11806dbfeb2.java)
        at
org
.apache
.tapestry
.internal
.services
.PageResponseRendererImpl
.renderPageResponse(PageResponseRendererImpl.java:56)
.
.
.

I don't understand, but I think I'll just return void from the method
instead.

Travis


On Feb 10, 2008, at 9:54 PM, Dapeng wrote:

besides the similarity

i guess ur beginRender should return false for redirect

refering to the state diagram

http://tapestry.apache.org/tapestry5/tapestry-core/guide/
rendering.html


Travis McLeskey wrote:
Ah, thanks, that works for me. Here's what I did:

   @Inject
   private Response response;

   @Inject
   private LinkFactory linkFactory;

   public Object beginRender() throws IOException {
       if( isLoginNeeded() )

response.sendRedirect( linkFactory.createPageLink("Login", true) );
       return true;
   }

I wish there were a cleaner way, but that'll do.

Thanks,
Travis



On Feb 10, 2008, at 9:06 PM, Dapeng wrote:

what i am doing is

@Inject
private Response response;

boolean beginRender(){

 if( isRedirectNeeded() ) {
          try { response.sendRedirect("") } catch (Exception e) {}
          return false;
 }

}



Travis McLeskey wrote:
In a page, you can listen for the "activate" event and, for
example, if the user doesn't have permission to view that page,
you can return a value (Page, Class, String, etc.) that triggers
a redirect to another page.

Is it possible to do the same when a component is loading/
rendering? Components don't receive the "activate" event, and I
haven't had any luck returning a page object from setupRender()
and beginRender().

Thanks,
Travis


---------------------------------------------------------------------
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]

---------------------------------------------------------------------
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]

---------------------------------------------------------------------
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]

Reply via email to