DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16616>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16616 SaveRegistrationAction does not cancel correctly Summary: SaveRegistrationAction does not cancel correctly Product: Struts Version: 1.1 Beta 3 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Minor Priority: Other Component: Example AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] This is a minor problem but the struts example does not go to the correct page when cancelling out of creating a new registration. // Was this transaction cancelled? if (isCancelled(request)) { if (log.isTraceEnabled()) { log.trace(" Transaction '" + action + "' was cancelled"); } session.removeAttribute(Constants.SUBSCRIPTION_KEY); return (mapping.findForward("success")); } The referenced code always returns the success forward mapping. This mapping is correct for the case when cancelling the registration for an existing user but not correct for cancelling creating a new registration. The success page tries to take the mainMenu.jsp, but since the user is not logged in the wind up on the logon page. Not what they expect. The fix is easy. Use the action to determine that ActionForward. if ("Create".equals(action) ) { return (mapping.findForward("cancel")); } else { return (mapping.findForward("success")); } The second problem in saveRegistrationAction is that it does not correctly implement the inputForward property of the controller. <set-property property="inputForward" value="true"/> The RequestUtils.forwardURL should be used when inputForward is set to true. // Report any errors we have discovered back to the original form if (!errors.isEmpty()) { saveErrors(request, errors); saveToken(request); return (mapping.getInputForward()); } the return ( mapping.getInputForward()); should be replaced with ActionForward actionForward = null; ModuleConfig config = (ModuleConfig) request.getAttribute (org.apache.struts.Globals.MODULE_KEY); if (config != null && config.getControllerConfig().getInputForward()) { ForwardConfig forward = mapping.findForward(mapping.getInput()); String uri = RequestUtils.forwardURL(request, forward); actionForward = new ActionForward( uri ); } else { actionForward = new ActionForward(mapping.getInput()); } return actionForward; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
