Repository: incubator-freemarker Updated Branches: refs/heads/2.3-gae 0815e14ff -> 2b1ff0e8d
Added more information about configuring FreeMarker with string-string key-value pairs. Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/58cba5b9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/58cba5b9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/58cba5b9 Branch: refs/heads/2.3-gae Commit: 58cba5b961154f374989c6eab49e8560623db9de Parents: 0815e14 Author: ddekany <ddek...@apache.org> Authored: Thu Aug 11 20:29:46 2016 +0200 Committer: ddekany <ddek...@apache.org> Committed: Thu Aug 11 20:29:46 2016 +0200 ---------------------------------------------------------------------- src/manual/en_US/book.xml | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/58cba5b9/src/manual/en_US/book.xml ---------------------------------------------------------------------- diff --git a/src/manual/en_US/book.xml b/src/manual/en_US/book.xml index b93691a..c6b0c38 100644 --- a/src/manual/en_US/book.xml +++ b/src/manual/en_US/book.xml @@ -8083,7 +8083,11 @@ cfg.setSharedVariable("company", "Foo Inc.");</programlisting> <programlisting role="unspecified">Configuration myCfg = new Configuration(Configuration.VERSION_2_3_25); myCfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); -myCfg.setDefaultEncoding("UTF-8");</programlisting> +myCfg.setDefaultEncoding("UTF-8"); +DefaultObjectWrapperBuilder owb = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25); +owb.setForceLegacyNonListCollections(false); +owb.setDefaultDateType(TemplateDateModel.DATETIME); +myCfg.setObjectWrapper(owb.build());</programlisting> <para>You do this before you start to actually use the <literal>Configuration</literal> object (typically, when you @@ -8109,14 +8113,35 @@ myCfg.setDefaultEncoding("UTF-8");</programlisting> <prop key="incompatible_improvements">2.3.25</prop> <prop key="template_exception_handler">rethrow</prop> <prop key="default_encoding">UTF-8</prop> + <prop key="object_wrapper"> + DefaultObjectWrapper( + 2.3.25, + forceLegacyNonListCollections = false, + defaultDateType = freemarker.template.TemplateDateModel.DATETIME) + </prop> </props> </property> </bean></programlisting> - <para>Note that this kind of configuring - (<literal>String</literal> key-value pairs) is somewhat limited - compared to directly using Java API, so in some cases you have to - find a way to do this in Java.</para> + <para>Here's the same when configuring FreeMarker for Struts, + which looks for a <literal>freemarker.properties</literal> in the + classpath:</para> + + <programlisting role="unspecified">incompatible_improvements=2.3.25 +template_exception_handler=rethrow +default_encoding=UTF-8 +object_wrapper=DefaultObjectWrapper( \ + 2.3.25, \ + forceLegacyNonListCollections = false, \ + defaultDateType = freemarker.template.TemplateDateModel.DATETIME)</programlisting> + + <para>As demonstrated above with + <literal>object_wrapper</literal>, some settings can accept quite + complex values, which can be used to instantiate objects of + arbitrary classes and set their properties. Still, configuring + with <literal>String</literal> key-value pairs is limited compared + to directly using the Java API, so in some cases you have to find + a way to do this in Java.</para> </listitem> <listitem> @@ -8153,7 +8178,7 @@ myCfg.setDefaultEncoding("UTF-8");</programlisting> should set <link linkend="pgui_config_incompatible_improvements">the <literal>incompatible_improvements</literal> setting</link> to - 2.3.22 or higher, to avoid soe confusing legacy bugs.</para> + 2.3.22 or higher, to avoid some confusing legacy bugs.</para> </note> </listitem>