Dear Wiki user, You have subscribed to a wiki page or wiki category on "Jakarta-tapestry Wiki" for change notification.
The following page has been changed by AndreasAndreou: http://wiki.apache.org/jakarta-tapestry/LogoutLinkTap4 The comment on the change is: Update code for beta-13 ------------------------------------------------------------------------------ This will save on writing extra classes if you don't need them, but stops you from doing other things in your listener without wrapping the Restart Service (like logging a message, giving the user the option to not logout?, etc). - = Listener Approach = + = Listener Approach (for versions up to beta-12) = Firstly, you will need to define a listener method in your page (or component) class, and a LinkFactory getter. {{{ - public abstract LinkFactory getLinkFactory(); + public abstract IEngineService getRestartService(); - public void logout(IRequestCycle cycle) + public ILink logout(IRequestCycle cycle) { // do your own cleanup here + return getRestartService.getLink(cycle, false, null); - Map params = new HashMap(); - params.put(ServiceConstants.SERVICE, Tapestry.RESTART_SERVICE); - ILink link = getLinkFactory().constructLink(cycle, false, params, true); - String restartUrl = link.getAbsoluteURL(); - throw new RedirectException(restartUrl); } }}} Then, in your .page (or .jwc), inject the LinkFactory : {{{ - <inject object="infrastructure:linkFactory" property="linkFactory"></inject> + <inject object="engine-service:restart" property="restartService" /> }}} Thirdly add the listener to your link: @@ -37, +33 @@ <span jwcid="@DirectLink" listener="listener:logout">Logout</span> }}} + = Listener Approach (for versions later than beta-12) = + + Due to changes to the getLink parameters that occured in beta-13, + your logout method should now be: + + {{{ + public ILink logout() + { + // do your own cleanup here + + return getRestartService.getLink(false, null); + } + }}} + --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
