public class

CancellableFormController

extends SimpleFormController
java.lang.Object
   ↳ org.springframework.context.support.ApplicationObjectSupport
     ↳ org.springframework.web.context.support.WebApplicationObjectSupport
       ↳ org.springframework.web.servlet.support.WebContentGenerator
         ↳ org.springframework.web.servlet.mvc.AbstractController
           ↳ org.springframework.web.servlet.mvc.BaseCommandController
             ↳ org.springframework.web.servlet.mvc.AbstractFormController
               ↳ org.springframework.web.servlet.mvc.SimpleFormController
                 ↳ org.springframework.web.servlet.mvc.CancellableFormController

This class is deprecated.
as of Spring 3.0, in favor of annotated controllers

Class Overview

Extension of SimpleFormController that supports "cancellation" of form processing. By default, this controller looks for a given parameter in the request, identified by the cancelParamKey. If this parameter is present, then the controller will return the configured cancelView, otherwise processing is passed back to the superclass.

Workflow (in addition to the superclass):

  1. Call to processFormSubmission which calls isCancelRequest(HttpServletRequest) to see if the incoming request is to cancel the current form entry. By default, isCancelRequest(HttpServletRequest) returns true if the configured cancelParamKey exists in the request. This behavior can be overridden in subclasses.
  2. If isCancelRequest(HttpServletRequest) returns false, then the controller will delegate all processing back to SimpleFormController, otherwise it will call the onCancel(Object) version with all parameters. By default, that method will delegate to the onCancel(Object) version with just the command object, which will in turn simply return the configured cancelView. This behavior can be overridden in subclasses.

Thanks to Erwin Bolwidt for submitting the original prototype of such a cancellable form controller!

Summary

[Expand]
Inherited Constants
From class org.springframework.web.servlet.mvc.BaseCommandController
From class org.springframework.web.servlet.support.WebContentGenerator
[Expand]
Inherited Fields
From class org.springframework.context.support.ApplicationObjectSupport
Public Constructors
CancellableFormController()
Public Methods
final String getCancelParamKey()
Return the key of the request parameter used to identify a cancel request.
final String getCancelView()
Gets the name of the cancel view.
final void setCancelParamKey(String cancelParamKey)
Set the key of the request parameter used to identify a cancel request.
final void setCancelView(String cancelView)
Sets the name of the cancel view.
Protected Methods
boolean isCancelRequest(HttpServletRequest request)
Determine whether the incoming request is a request to cancel the processing of the current form.
boolean isFormSubmission(HttpServletRequest request)
Consider an explicit cancel request as a form submission too.
ModelAndView onCancel(HttpServletRequest request, HttpServletResponse response, Object command)
Callback method for handling a cancel request.
ModelAndView onCancel(Object command)
Simple onCancel version.
ModelAndView processFormSubmission(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)
This implementation first checks to see if the incoming is a cancel request, through a call to isCancelRequest(HttpServletRequest).
boolean suppressValidation(HttpServletRequest request, Object command)
Suppress validation for an explicit cancel request too.
[Expand]
Inherited Methods
From class org.springframework.web.servlet.mvc.SimpleFormController
From class org.springframework.web.servlet.mvc.AbstractFormController
From class org.springframework.web.servlet.mvc.BaseCommandController
From class org.springframework.web.servlet.mvc.AbstractController
From class org.springframework.web.servlet.support.WebContentGenerator
From class org.springframework.web.context.support.WebApplicationObjectSupport
From class org.springframework.context.support.ApplicationObjectSupport
From class java.lang.Object
From interface org.springframework.context.ApplicationContextAware
From interface org.springframework.web.context.ServletContextAware
From interface org.springframework.web.servlet.mvc.Controller

Public Constructors

public CancellableFormController ()

Public Methods

public final String getCancelParamKey ()

Return the key of the request parameter used to identify a cancel request.

public final String getCancelView ()

Gets the name of the cancel view.

public final void setCancelParamKey (String cancelParamKey)

Set the key of the request parameter used to identify a cancel request. Default is "_cancel".

The parameter is recognized both when sent as a plain parameter ("_cancel") or when triggered by an image button ("_cancel.x").

public final void setCancelView (String cancelView)

Sets the name of the cancel view.

Protected Methods

protected boolean isCancelRequest (HttpServletRequest request)

Determine whether the incoming request is a request to cancel the processing of the current form.

By default, this method returns true if a parameter matching the configured cancelParamKey is present in the request, otherwise it returns false. Subclasses may override this method to provide custom logic to detect a cancel request.

The parameter is recognized both when sent as a plain parameter ("_cancel") or when triggered by an image button ("_cancel.x").

Parameters
request current HTTP request
See Also

protected boolean isFormSubmission (HttpServletRequest request)

Consider an explicit cancel request as a form submission too.

Parameters
request current HTTP request
Returns
  • if the request represents a form submission

protected ModelAndView onCancel (HttpServletRequest request, HttpServletResponse response, Object command)

Callback method for handling a cancel request. Called if isCancelRequest(HttpServletRequest) returns true.

Default implementation delegates to onCancel(Object) to return the configured cancelView. Subclasses may override either of the two methods to build a custom ModelAndView that may contain model parameters used in the cancel view.

If you simply want to move the user to a new view and you don't want to add additional model parameters, use setCancelView(String) rather than overriding an onCancel method.

Parameters
request current servlet request
response current servlet response
command form object with request parameters bound onto it
Returns
  • the prepared model and view, or null
Throws
Exception in case of errors

protected ModelAndView onCancel (Object command)

Simple onCancel version. Called by the default implementation of the onCancel version with all parameters.

Default implementation returns eturns the configured cancelView. Subclasses may override this method to build a custom ModelAndView that may contain model parameters used in the cancel view.

If you simply want to move the user to a new view and you don't want to add additional model parameters, use setCancelView(String) rather than overriding an onCancel method.

Parameters
command form object with request parameters bound onto it
Returns
  • the prepared model and view, or null
Throws
Exception in case of errors

protected ModelAndView processFormSubmission (HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)

This implementation first checks to see if the incoming is a cancel request, through a call to isCancelRequest(HttpServletRequest). If so, control is passed to onCancel(Object); otherwise, control is passed up to processFormSubmission(HttpServletRequest, HttpServletResponse, Object, BindException).

Parameters
request current servlet request
response current servlet response
command form object with request parameters bound onto it
errors holder without errors (subclass can add errors if it wants to)
Returns
  • the prepared model and view, or null
Throws
Exception

protected boolean suppressValidation (HttpServletRequest request, Object command)

Suppress validation for an explicit cancel request too.

Parameters
request current HTTP request
command the command object to validate
Returns
  • whether to suppress validation for the given request