The StrutsBeanWrapper extends the default FreeMarker BeansWrapper and provides almost no change in functionality,
for how it handles maps. Normally, FreeMarker has two modes of operation: either support for friendly
map built-ins (?keys, ?values, etc) but only support for String keys; OR no special built-in support (ie: ?keys
returns the methods on the map instead of the keys) but support for String and non-String keys alike. Struts
provides an alternative implementation that gives us the best of both worlds.
It is possible that this special behavior may be confusing or can cause problems. Therefore, you can set the
property in struts.properties to false, allowing the normal BeansWrapper
logic to take place instead.