diff --git a/spring-webflow-reference/src/actions.xml b/spring-webflow-reference/src/actions.xml
index 2d541cff..fcb14666 100644
--- a/spring-webflow-reference/src/actions.xml
+++ b/spring-webflow-reference/src/actions.xml
@@ -63,7 +63,7 @@
-
+
]]>
diff --git a/spring-webflow-reference/src/views.xml b/spring-webflow-reference/src/views.xml
index b25a9a59..c5540850 100644
--- a/spring-webflow-reference/src/views.xml
+++ b/spring-webflow-reference/src/views.xml
@@ -166,6 +166,73 @@
If model binding fails, the view is re-rendered to allow the user to revise their edits.
+
+ Performing type conversion
+
+ When a model binding occurs during view postback, the binding system will attempt to convert the input value to the type of the target model property if necessary.
+ Default Converters are registered for common types such as Numbers, primitives, enums, and Dates and are applied automatically.
+ Users also have the ability to register their own converters for user-defined types, and to override the default Converters.
+
+
+ Implementing a Converter
+
+ To implement your own Converter, implement the org.springframework.binding.convert.converters.TwoWayConverter interface.
+ A convenient StringToObject base class has been provided to simplify the implementation of this interface for converters
+ that convert from a user input String to a user-defined Object and back. Simply extend from this class and override these two methods:
+
+
+protected abstract Object toObject(String string, Class targetClass) throws Exception;
+
+protected abstract String toString(Object object) throws Exception;
+
+
+ toObject(String, Class) should convert from the input string to your object's type, and toString(Object) should do the reverse.
+
+
+ The following example shows a Converter that converts from String to a MonetaryAmount for working with currency values:
+
+
+public class StringToMonetaryAmount extends StringToObject {
+
+ public StringToMonetaryAmount() {
+ super(MonetaryAmount.class);
+ }
+
+ @Override
+ protected Object toObject(String string, Class targetClass) {
+ return MonetaryAmount.valueOf(string);
+ }
+
+ @Override
+ protected String toString(Object object) {
+ MonetaryAmount amount = (MonetaryAmount) object;
+ return amount.toString();
+ }
+}
+
+
+ Review the pre-built converters in the org.springframework.binding.convert.converters package to see more examples of Converter implementations.
+
+
+
+ Registering a Converter
+
+ To install your own Converter or override any of the default Converters, extend from org.springframework.binding.convert.service.DefaultConversionService and override the addDefaultConverters() method.
+ Use the addConverter(Converter) method to register the primary Converter to use to convert between two types, such as a String and a MonetaryAmount.
+ Optionally use the addConverter(String, Converter) method to register alternate converters for the same type pair; for example, to support formatting a java.util.Date as a String in several different ways.
+ Consult the Convert JavaDoc API documentation for more information.
+
+
+ Each alternate Converter is indexed by a unique converterId that can be referenced when configuring a model binding.
+ When no converter id is referenced explicitly by a binding, the primary Converter between the two types is always used.
+
+
+ The ConversionService is the object Web Flow consults at runtime to lookup conversion executors to convert from one type to another.
+ There is generally one ConversionService per application.
+ See the System Setup section for documentation on how to configure an extended ConversionService implementation that registers custom Converters.
+
+
+ Suppressing binding
@@ -178,7 +245,7 @@
]]>
-
+
Specifying bindings explicitly