public class NormalizeNewlines extends java.lang.Object implements TemplateTransformModel
Transformer that supports FreeMarker legacy behavior: all newlines appearing within the transformed area will be transformed into the platform's default newline. Unlike the old behavior, however, newlines generated by the data model are also converted. Legacy behavior was to leave newlines in the data model unaltered.
SimpleHash root = new SimpleHash(); root.put( "normalizeNewlines", new freemarker.template.utility.NormalizeNewlines() ); ...
From your FreeMarker template:
<transform normalizeNewlines> <html> <head> ... <p>This template has all newlines normalized to the current platform's default.</p> ... </body> </html> </transform>
|Constructor and Description|
|Modifier and Type||Method and Description|
Returns a writer that will be used by the engine to feed the transformation input to the transform.
Performs newline normalization on FreeMarker output.
public java.io.Writer getWriter(java.io.Writer out, java.util.Map args)
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.
public void transform(java.io.Reader in, java.io.Writer out) throws java.io.IOException
in- the input to be transformed
out- the destination of the transformation