My miniature (60-line) MVC engine for PHP, http://code.google.com/p/barebonesmvc-php/, used successfully on an embedded consumer device by Cisco, relies on the "template method" pattern, wherein the parent class specifies the steps to an algorithm but the child class is responsible for implementing some of those steps.
static function sendResponse(IBareBonesController $controller) {
$controller->setMto($controller->applyRequestToModel());
$controller->mto->applyModelToView();
}
In the case of my engine, the developer needs to implement applyRequestToModel. Not only Spring's Web/MVC module, but also my applyModelToView method, takes a map/hash/assoc-array and makes it available to the view, except Spring conflates the two facets of MVC in the name of their abstraction (ModelAndView), whereas my abstraction is more appropriately name ModelTransferObject (aka $mto).
Speaking of Spring, in the GoF reference regarding the template method pattern, the GoF refer to "inversion of control"