public interface TemplateTransformModel extends TemplateModel
TemplateDirectiveModelinstead. This interface will certainly be deprecated in FreeMarker 2.4.
java.io.Writer getWriter(java.io.Writer out, java.util.Map args) throws TemplateModelException, java.io.IOException
This method should not throw
IOException that wasn't caused by writing to
the output. Such exceptions should be catched inside the method and wrapped inside a
TemplateModelException. (Note that setting
true can mitigate the negative effects of implementations that throw
out- the character stream to which to write the transformed output
args- the arguments (if any) passed to the transformation as a map of key/value pairs where the keys are strings and the arguments are
TemplateModelinstances. This is never
null. (If you need to convert the template models to POJOs, you can use the utility methods in the
DeepUnwrapclass. Though it's recommended to work with
Writerto which the engine will write the content to transform, or
nullif the transform does not support nested content (body). The returned
Writermay implements the
TransformControlinterface if it needs advanced control over the evaluation of the nested content. FreeMarker will call
Writer.close()after the transform end-tag.
Writer.close()must not close the
Writerreceived as the
outparameter (so if you are using a
FilterWriter, you must override
FilterWriter.close(), as by default that closes the wrapped
Writer). Since 2.3.27 its also allowed to return the
outwriter as is, in which case it won't be closed.
TemplateModelException- If any problem occurs that's not an
IOExceptionduring writing the template output.
java.io.IOException- When writing to
out(the parameter) fails. Other
IOException-s should be catched in this method and wrapped into