Package freemarker.ext.beans
Class ResourceBundleModel
java.lang.Object
freemarker.ext.beans.BeanModel
freemarker.ext.beans.ResourceBundleModel
- All Implemented Interfaces:
WrapperTemplateModel
,AdapterTemplateModel
,TemplateHashModel
,TemplateHashModelEx
,TemplateMethodModel
,TemplateMethodModelEx
,TemplateModel
,TemplateModelWithAPISupport
A hash model that wraps a resource bundle. Makes it convenient to store
localized content in the data model. It also acts as a method model that will
take a resource key and arbitrary number of arguments and will apply
MessageFormat
with arguments on the string represented by the key.
Typical usages:
bundle.resourceKey
will retrieve the object from resource bundle with keyresourceKey
bundle("patternKey", arg1, arg2, arg3)
will retrieve the string from resource bundle with keypatternKey
, and will use it as a pattern for MessageFormat with arguments arg1, arg2 and arg3
-
Field Summary
Fields inherited from interface freemarker.template.TemplateModel
NOTHING
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionTakes first argument as a resource key, looks up a string in resource bundle with this key, then applies a MessageFormat.format on the string with the rest of the arguments.Provides direct access to caching format engine from code (instead of from script).protected TemplateModel
invokeGenericGet(Map keyMap, Class clazz, String key)
Overridden to invoke the getObject method of the resource bundle.boolean
isEmpty()
Returns true if this bundle contains no objects.protected Set
keySet()
Helper method to support TemplateHashModelEx.int
size()
Methods inherited from class freemarker.ext.beans.BeanModel
get, get, getAdaptedObject, getAPI, getBeforeMethodCall, getWrappedObject, hasPlainGetMethod, keys, toString, unwrap, values, wrap
-
Constructor Details
-
ResourceBundleModel
-
-
Method Details
-
invokeGenericGet
protected TemplateModel invokeGenericGet(Map keyMap, Class clazz, String key) throws TemplateModelExceptionOverridden to invoke the getObject method of the resource bundle.- Overrides:
invokeGenericGet
in classBeanModel
- Throws:
TemplateModelException
-
isEmpty
public boolean isEmpty()Returns true if this bundle contains no objects.- Specified by:
isEmpty
in interfaceTemplateHashModel
- Overrides:
isEmpty
in classBeanModel
-
size
public int size()- Specified by:
size
in interfaceTemplateHashModelEx
- Overrides:
size
in classBeanModel
- Returns:
- the number of key/value mappings in the hash.
-
keySet
Description copied from class:BeanModel
Helper method to support TemplateHashModelEx. Returns the Set of Strings which are available via the TemplateHashModel interface. Subclasses that overrideinvokeGenericGet
to provide additional hash keys should also override this method. -
exec
Takes first argument as a resource key, looks up a string in resource bundle with this key, then applies a MessageFormat.format on the string with the rest of the arguments. The created MessageFormats are cached for later reuse.- Specified by:
exec
in interfaceTemplateMethodModel
- Specified by:
exec
in interfaceTemplateMethodModelEx
- Parameters:
arguments
- aList
ofTemplateModel
-s, containing the arguments passed to the method. If the implementation absolutely wants to operate on POJOs, it can use the static utility methods in theDeepUnwrap
class to easily obtain them. However, unwrapping is not always possible (or not perfectly), and isn't always efficient, so it's recommended to use the originalTemplateModel
value as much as possible.- Returns:
- the return value of the method, or
null
. If the returned value does not implementTemplateModel
, it will be automatically wrapped using theenvironment's object wrapper
. - Throws:
TemplateModelException
-
format
Provides direct access to caching format engine from code (instead of from script).- Throws:
MissingResourceException
-
getBundle
-