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]