org.springframework.web.method.annotation
Class InitBinderDataBinderFactory

java.lang.Object
  extended by org.springframework.web.bind.support.DefaultDataBinderFactory
      extended by org.springframework.web.method.annotation.InitBinderDataBinderFactory
All Implemented Interfaces:
WebDataBinderFactory
Direct Known Subclasses:
ServletRequestDataBinderFactory

public class InitBinderDataBinderFactory
extends DefaultDataBinderFactory

Adds initialization to a WebDataBinder via @InitBinder methods.

Since:
3.1
Author:
Rossen Stoyanchev

Constructor Summary
InitBinderDataBinderFactory(List<InvocableHandlerMethod> binderMethods, WebBindingInitializer initializer)
          Create a new instance.
 
Method Summary
 void initBinder(WebDataBinder binder, NativeWebRequest request)
          Initialize a WebDataBinder with @InitBinder methods.
protected  boolean isBinderMethodApplicable(HandlerMethod initBinderMethod, WebDataBinder binder)
          Return true if the given @InitBinder method should be invoked to initialize the given WebDataBinder.
 
Methods inherited from class org.springframework.web.bind.support.DefaultDataBinderFactory
createBinder, createBinderInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InitBinderDataBinderFactory

public InitBinderDataBinderFactory(List<InvocableHandlerMethod> binderMethods,
                                   WebBindingInitializer initializer)
Create a new instance.

Parameters:
binderMethods - @InitBinder methods, or null
initializer - for global data binder intialization
Method Detail

initBinder

public void initBinder(WebDataBinder binder,
                       NativeWebRequest request)
                throws Exception
Initialize a WebDataBinder with @InitBinder methods. If the @InitBinder annotation specifies attributes names, it is invoked only if the names include the target object name.

Overrides:
initBinder in class DefaultDataBinderFactory
Parameters:
binder - the data binder instance to customize
request - the current request
Throws:
Exception - if one of the invoked @InitBinder methods fail.

isBinderMethodApplicable

protected boolean isBinderMethodApplicable(HandlerMethod initBinderMethod,
                                           WebDataBinder binder)
Return true if the given @InitBinder method should be invoked to initialize the given WebDataBinder.

The default implementation checks if target object name is included in the attribute names specified in the @InitBinder annotation.