(Quick Reference)
bindData
Purpose
Allows fine-grained control of binding request parameters from strings onto objects and the necessary types (data binding).
Examples
// binds request parameters to a target object
bindData(target, params)// exclude firstName and lastName
bindData(target, params, [exclude: ['firstName', 'lastName']])// only use parameters starting with "author." e.g. author.email
bindData(target, params, "author")
bindData(target, params, [exclude: ['firstName', 'lastName']], "author")// using inclusive map
bindData(target, params, [include: ['firstName', 'lastName']], "author")
Description
Usage:
bindData(target, params, includesExcludes, prefix)
Arguments:
target
- The target object to bind to
params
- A Map
of source parameters, often the params object when used in a controller
includesExcludes
- (Optional) A map with 'include' and/or 'exclude' lists containing the names of properties to either include or exclude.
prefix
- (Optional) A string representing a prefix to use to filter parameters. The method will automatically append a '.' when matching the prefix to parameters, so you can use 'author' to filter for parameters such as 'author.name'.
Note that if an empty List or no List is provided as a value for the include
parameter then all statically typed instance properties will be subject to binding if they are not explicitly excluded. See the bindable constraint documentation for more information on how to control what is bindable and what is not.
The underlying implementation uses Spring's Data Binding framework. If the target is a domain class, type conversion errors are stored in the
errors
property of the domain class.
Refer to the section on
Data Binding in the user guide for more information.