Class StrutsBeanWrapper

java.lang.Object
freemarker.ext.beans.BeansWrapper
org.apache.struts2.views.freemarker.StrutsBeanWrapper
All Implemented Interfaces:
freemarker.template.ObjectWrapper, freemarker.template.ObjectWrapperAndUnwrapper, freemarker.template.utility.ObjectWrapperWithAPISupport, freemarker.template.utility.RichObjectWrapper, freemarker.template.utility.WriteProtectable

public class StrutsBeanWrapper extends freemarker.ext.beans.BeansWrapper

The StrutsBeanWrapper extends the default FreeMarker BeansWrapper and provides almost no change in functionality, except 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 struts.freemarker.wrapper.altMap property in struts.properties to false, allowing the normal BeansWrapper logic to take place instead.

  • Nested Class Summary

    Nested classes/interfaces inherited from class freemarker.ext.beans.BeansWrapper

    freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision, freemarker.ext.beans.BeansWrapper.MethodAppearanceDecisionInput
  • Field Summary

    Fields inherited from class freemarker.ext.beans.BeansWrapper

    EXPOSE_ALL, EXPOSE_NOTHING, EXPOSE_PROPERTIES_ONLY, EXPOSE_SAFE

    Fields inherited from interface freemarker.template.ObjectWrapper

    BEANS_WRAPPER, DEFAULT_WRAPPER, SIMPLE_WRAPPER

    Fields inherited from interface freemarker.template.ObjectWrapperAndUnwrapper

    CANT_UNWRAP_TO_TARGET_CLASS
  • Constructor Summary

    Constructors
    Constructor
    Description
    StrutsBeanWrapper(boolean altMapWrapper, freemarker.template.Version incompatibleImprovements)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected freemarker.ext.util.ModelFactory
     

    Methods inherited from class freemarker.ext.beans.BeansWrapper

    checkModifiable, clearClassIntrospecitonCache, clearClassIntrospectionCache, coerceBigDecimal, coerceBigDecimals, coerceBigDecimals, finalizeConstruction, finetuneMethodAppearance, getDefaultDateType, getDefaultInstance, getDefaultZeroArgumentNonVoidMethodPolicy, getEnumModels, getExposureLevel, getIncompatibleImprovements, getInstance, getMemberAccessPolicy, getMethodAppearanceFineTuner, getOuterIdentity, getPreferIndexedReadMethod, getRecordZeroArgumentNonVoidMethodPolicy, getStaticModels, getTreatDefaultMethodsAsBeanMembers, getUseCache, invokeMethod, isClassIntrospectionCacheRestricted, isExposeFields, isSimpleMapWrapper, isStrict, isWriteProtected, newInstance, normalizeIncompatibleImprovementsVersion, readField, removeFromClassIntrospectionCache, setDefaultDateType, setDefaultZeroArgumentNonVoidMethodPolicy, setExposeFields, setExposureLevel, setMemberAccessPolicy, setMethodAppearanceFineTuner, setMethodsShadowItems, setNullModel, setOuterIdentity, setPreferIndexedReadMethod, setRecordZeroArgumentNonVoidMethodPolicy, setSimpleMapWrapper, setStrict, setTreatDefaultMethodsAsBeanMembers, setUseCache, toPropertiesString, toString, tryUnwrapTo, unwrap, unwrap, wrap, wrap, wrapAsAPI, writeProtect

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • StrutsBeanWrapper

      public StrutsBeanWrapper(boolean altMapWrapper, freemarker.template.Version incompatibleImprovements)
  • Method Details

    • getModelFactory

      protected freemarker.ext.util.ModelFactory getModelFactory(Class clazz)
      Overrides:
      getModelFactory in class freemarker.ext.beans.BeansWrapper