Previous versions of Tapestry allowed redirection exceptions to be thrown
precisely to avoid code like this. (Controversial, but better IMO.)

Anyway, access validation shouldn't require a client side redirect.
If you are working against the framework, there's probably a better way.

Cheers,
Nick.


Donyee wrote:
> I do this in the beforeRenderTemplate(),and works fine!
> 
> boolean beforeRenderTemplate() throws IOException, ServletException {
>         if (!isLogined()) {
> 
>             if (appState == null) {
>                 appState = new AppState();
>             }
> 
>             appState.setErrCode("00100");
>             appState.setPrePage("index");
>             global.getResponse().sendRedirect(
>                     global.getHTTPServletRequest().getContextPath()
>                             + "/errorMessage");
>         }
> 
>         return true;
>     }
> 
> 
> 2007/7/18, Nick Westgate <[EMAIL PROTECTED]>:
>> No, I'm pretty sure you can't.
>>
>> Read the documentation again, and look at:
>> ComponentPageElementImpl.RenderPhaseEventHandler.handleResult()
>>
>> It seems to confirm that returning a component will render that
>> component and then _continue_ with the rendering phases for the
>> current component.
>>
>> Render phase methods are completely separate from the event handlers
>> for page navigation events. All options are on the page I linked to:
>> http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html
>>
>> Cheers,
>> Nick.
>>
>>
>> Korben Zhang wrote:
>> > Yes, you can.
>> > See T5 core components, such as 'If'.
>> >
>> > use
>> > Object setupRender() {...}
>> >
>> > See page
>> > http://tapestry.apache.org/tapestry5/tapestry-core/guide/rendering.html
>> >
>> > remember boolean is an object too.
>> >
>> >
>> >
>> > On 7/17/07, Nick Westgate <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Access validation should be done in onActivate():
>> >> http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html
>> >>
>> >> Cheers,
>> >> Nick.
>> >>
>> >>
>> >> dtrebbien wrote:
>> >> > I have two pages: ListRepositories and ViewRepository. 
>> ListRepositories
>> >> is
>> >> > supposed to give ViewRepository an id number by calling
>> >> ViewRepository's
>> >> > init() method. ViewRepository tracks whether it has been inited 
>> via a
>> >> > boolean value. The problem is, I want to redirect back to
>> >> ListRepositories
>> >> > if a devious user just types in the URL for ViewRepository which 
>> would
>> >> > bypass ListRepositories's call to ViewRepository's init().
>> >> >
>> >> > Currently I just return false, but this causes Tapestry to complain
>> >> with
>> >> > something like "root component not defined".
>> >> >
>> >> > Does anyone know how to redirect to another page in the 
>> setupRender()
>> >> > method?
>> >>
>> >> ---------------------------------------------------------------------
>> >> 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