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]