- Revision
- 624
- Author
- mauro
- Date
- 2008-04-18 12:03:29 -0500 (Fri, 18 Apr 2008)
Log Message
Added overrideable buildActionMethodFailureView() method. Renamed buildReferringView() to buildView(), more in line with View type.
Modified Paths
Diff
Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java (623 => 624)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java 2008-04-18 16:39:57 UTC (rev 623) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java 2008-04-18 17:03:29 UTC (rev 624) @@ -163,12 +163,12 @@ try { if (errorsContext.hasErrorMessages() || noMethodDefinition(controllerDefinition)) { - view = buildReferringView(controllerDefinition); + view = buildView(controllerDefinition); } else { actionMethodExecutor.execute(actionMethodResponse, controllerDefinition); if (errorsContext.hasErrorMessages()) { - view = buildReferringView(controllerDefinition); + view = buildView(controllerDefinition); } else if (actionMethodResponse.getReturnValue() == null) { // Null or VOID indicate a Waffle convention (return to referring page) // unless PRG is disabled @@ -178,19 +178,19 @@ view = buildRedirectingView(request, controllerDefinition); } else { // PRG is disabled - view = buildReferringView(controllerDefinition); + view = buildView(controllerDefinition); } } else { // was a GET - view = buildReferringView(controllerDefinition); + view = buildView(controllerDefinition); } } } } catch (ActionMethodInvocationException e) { + servletMonitor.actionMethodInvocationFailed(e); errorsContext.addErrorMessage(new GlobalErrorMessage("Action method invocation failed for controller " + controllerDefinition.getName() + ", :" + e.getMessage(), e)); - view = buildReferringView(controllerDefinition); - servletMonitor.actionMethodInvocationFailed(e); + view = buildActionMethodFailureView(controllerDefinition); } requestAttributeBinder.bind(request, controllerDefinition.getController()); } catch (WaffleException e) { @@ -241,7 +241,7 @@ * @param controllerDefinition the ControllerDefinition * @return The View */ - protected View buildReferringView(ControllerDefinition controllerDefinition) { + protected View buildView(ControllerDefinition controllerDefinition) { String controllerValue = viewPrefix + controllerDefinition.getName() + viewSuffix; return new View(controllerValue, controllerDefinition.getController()); } @@ -259,14 +259,27 @@ } /** + * Builds the view for action method failures, by default the referring view. + * The user can extend and override behaviour, eg to throw a ServletException. + * + * @param controllerDefinition the ControllerDefinition + * @return The referring View + * @throws ServletException if required + */ + protected View buildActionMethodFailureView(ControllerDefinition controllerDefinition) throws ServletException { + return buildView(controllerDefinition); + } + + /** * Builds the errors view, for cases in which the context container or the controller are not found. * The user can extend and override behaviour, eg to throw a ServletException. * * @param request the HttpServletRequest - * @return The View + * @return The referring View + * @throws ServletException if required */ protected View buildErrorsView(HttpServletRequest request) throws ServletException { - return buildReferringView(new ControllerDefinition(errorsView, null, null)); + return buildView(new ControllerDefinition(errorsView, null, null)); } }
Modified: trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java (623 => 624)
--- trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java 2008-04-18 16:39:57 UTC (rev 623) +++ trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java 2008-04-18 17:03:29 UTC (rev 624) @@ -572,7 +572,7 @@ viewSuffixField.set(servlet, "-suffix"); ControllerDefinition controllerDefinition = new ControllerDefinition("foobar", null, null); - View view = servlet.buildReferringView(controllerDefinition); + View view = servlet.buildView(controllerDefinition); assertEquals("prefix-foobar-suffix", view.getValue()); }
To unsubscribe from this list please visit:
