Package freemarker.template.utility
Class ObjectConstructor
- java.lang.Object
-
- freemarker.template.utility.ObjectConstructor
-
- All Implemented Interfaces:
TemplateMethodModel
,TemplateMethodModelEx
,TemplateModel
public class ObjectConstructor extends java.lang.Object implements TemplateMethodModelEx
An object that you can make available in a template to instantiate arbitrary beans-wrapped objects in a template. Beware of this class's security implications. It allows the instantiation of arbitrary objects and invoking methods on them. Usage is something like:
myDataModel.put("objectConstructor", new ObjectConstructor());
And then from your FTL code:
<#assign aList = objectConstructor("java.util.ArrayList", 100)>
-
-
Field Summary
-
Fields inherited from interface freemarker.template.TemplateModel
NOTHING
-
-
Constructor Summary
Constructors Constructor Description ObjectConstructor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
exec(java.util.List args)
Executes the method call.
-
-
-
Method Detail
-
exec
public java.lang.Object exec(java.util.List args) throws TemplateModelException
Description copied from interface:TemplateMethodModelEx
Executes the method call.- Specified by:
exec
in interfaceTemplateMethodModel
- Specified by:
exec
in interfaceTemplateMethodModelEx
- Parameters:
args
- 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
-
-