You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by wo...@apache.org on 2017/11/08 04:16:42 UTC

incubator-freemarker git commit: FREEMARKER-55: favor .ftlh rather than OutputFormat in each .ftl files

Repository: incubator-freemarker
Updated Branches:
  refs/heads/3 b4ffc4c3f -> 0e85650a6


FREEMARKER-55: favor .ftlh rather than OutputFormat in each .ftl files


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/0e85650a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/0e85650a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/0e85650a

Branch: refs/heads/3
Commit: 0e85650a6dd94ed3be7cb251302e210192b34d4a
Parents: b4ffc4c
Author: Woonsan Ko <wo...@apache.org>
Authored: Tue Nov 7 23:16:32 2017 -0500
Committer: Woonsan Ko <wo...@apache.org>
Committed: Tue Nov 7 23:16:32 2017 -0500

----------------------------------------------------------------------
 .../views/example/users/useredit.ftl            | 88 --------------------
 .../views/example/users/useredit.ftlh           | 87 +++++++++++++++++++
 .../views/example/users/userlist.ftl            | 46 ----------
 .../views/example/users/userlist.ftlh           | 45 ++++++++++
 .../test/model/bind-directive-basic-usages.ftl  | 55 ------------
 .../test/model/bind-directive-basic-usages.ftlh | 54 ++++++++++++
 .../model/binderrors-directive-basic-usages.ftl | 70 ----------------
 .../binderrors-directive-basic-usages.ftlh      | 69 +++++++++++++++
 .../test/model/eval-function-basic-usages.ftl   | 41 ---------
 .../test/model/eval-function-basic-usages.ftlh  | 40 +++++++++
 .../model/message-function-basic-usages.ftl     | 32 -------
 .../model/message-function-basic-usages.ftlh    | 31 +++++++
 .../model/nestedpath-directive-basic-usages.ftl | 55 ------------
 .../nestedpath-directive-basic-usages.ftlh      | 54 ++++++++++++
 .../test/model/theme-function-basic-usages.ftl  | 31 -------
 .../test/model/theme-function-basic-usages.ftlh | 30 +++++++
 .../model/transform-function-basic-usages.ftl   | 28 -------
 .../model/transform-function-basic-usages.ftlh  | 27 ++++++
 .../test/model/url-function-basic-usages.ftl    | 84 -------------------
 .../test/model/url-function-basic-usages.ftlh   | 83 ++++++++++++++++++
 .../example/mvc/users/users-mvc-context.xml     |  2 +-
 21 files changed, 521 insertions(+), 531 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftl
deleted file mode 100644
index c206e9a..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftl
+++ /dev/null
@@ -1,88 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-<title>Spring MVC Form Example - User Edit Form</title>
-</head>
-<body>
-
-<h1>Editing User: ${spring.eval("user.firstName + ' ' + user.lastName")}</h1>
-
-<p>${spring.message("user.form.message", user.firstName, user.lastName, user.email)}</p>
-
-<form method="POST" action="${spring.url('/usereditaction.do', context='/othercontext', param1='value1', param2='value2')}">
-  <table border="2">
-    <tbody>
-      <tr>
-        <th>${spring.message("user.id")!}</th>
-        <td>${user.id}</td>
-      </tr>
-      <tr>
-        <th>${spring.message("user.password")!}</th>
-        <td>
-          <@spring.bind "user.password"; status>
-            <input type="password" name="password" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>${spring.message("user.email")!}</th>
-        <td>
-          <@spring.bind "user.email"; status>
-            <input type="text" name="email" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>${spring.message("user.firstName")!}</th>
-        <td>
-          <@spring.bind "user.firstName"; status>
-            <input type="text" name="firstName" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>${spring.message("user.lastName")!}</th>
-        <td>
-          <@spring.bind "user.lastName"; status>
-            <input type="text" name="lastName" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>${spring.message("user.birthDate")!}</th>
-        <td>
-          <@spring.bind "user.birthDate"; status>
-            ${spring.transform(status.editor, status.actualValue)!}
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <td colspan="2">
-          <input type="submit" value="${spring.message('user.form.submit')!'Save'}" />
-          <input type="reset" value="${spring.message('user.form.submit')!'Reset'}" />
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</form>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftlh
new file mode 100644
index 0000000..cf2900f
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/useredit.ftlh
@@ -0,0 +1,87 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<head>
+<title>Spring MVC Form Example - User Edit Form</title>
+</head>
+<body>
+
+<h1>Editing User: ${spring.eval("user.firstName + ' ' + user.lastName")}</h1>
+
+<p>${spring.message("user.form.message", user.firstName, user.lastName, user.email)}</p>
+
+<form method="POST" action="${spring.url('/usereditaction.do', context='/othercontext', param1='value1', param2='value2')}">
+  <table border="2">
+    <tbody>
+      <tr>
+        <th>${spring.message("user.id")!}</th>
+        <td>${user.id}</td>
+      </tr>
+      <tr>
+        <th>${spring.message("user.password")!}</th>
+        <td>
+          <@spring.bind "user.password"; status>
+            <input type="password" name="password" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>${spring.message("user.email")!}</th>
+        <td>
+          <@spring.bind "user.email"; status>
+            <input type="text" name="email" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>${spring.message("user.firstName")!}</th>
+        <td>
+          <@spring.bind "user.firstName"; status>
+            <input type="text" name="firstName" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>${spring.message("user.lastName")!}</th>
+        <td>
+          <@spring.bind "user.lastName"; status>
+            <input type="text" name="lastName" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>${spring.message("user.birthDate")!}</th>
+        <td>
+          <@spring.bind "user.birthDate"; status>
+            ${spring.transform(status.editor, status.actualValue)!}
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">
+          <input type="submit" value="${spring.message('user.form.submit')!'Save'}" />
+          <input type="reset" value="${spring.message('user.form.submit')!'Reset'}" />
+        </td>
+      </tr>
+    </tbody>
+  </table>
+</form>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftl
deleted file mode 100644
index aef5c91..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftl
+++ /dev/null
@@ -1,46 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-<title>Spring MVC Form Example - Users</title>
-</head>
-<body>
-
-<h1>Users</h1>
-
-<table border="2">
-  <thead>
-    <tr>
-      <th>Name</th>
-      <th>E-Mail</th>
-    </tr>
-  </thead>
-  <tbody>
-    <#list users as user>
-    <tr>
-      <td><a href="users/${user.id}">${user.firstName} ${user.lastName}</a></td>
-      <td><a href="mailto:${user.email}">${user.email}</a></td>
-    </tr>
-    </#list>
-  </tbody>
-</table>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftlh
new file mode 100644
index 0000000..7224eb7
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/example/users/userlist.ftlh
@@ -0,0 +1,45 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<head>
+<title>Spring MVC Form Example - Users</title>
+</head>
+<body>
+
+<h1>Users</h1>
+
+<table border="2">
+  <thead>
+    <tr>
+      <th>Name</th>
+      <th>E-Mail</th>
+    </tr>
+  </thead>
+  <tbody>
+    <#list users as user>
+    <tr>
+      <td><a href="users/${user.id}">${user.firstName} ${user.lastName}</a></td>
+      <td><a href="mailto:${user.email}">${user.email}</a></td>
+    </tr>
+    </#list>
+  </tbody>
+</table>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftl
deleted file mode 100644
index 2f0e535..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftl
+++ /dev/null
@@ -1,55 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<table class="table">
-  <tbody>
-    <tr>
-      <th>E-Mail</th>
-      <td>
-        <@spring.bind "user.email"; status>
-          <input type="text" name="email" value="${status.value!}" />
-        </...@spring.bind>
-      </td>
-    </tr>
-    <tr>
-      <th>First Name</th>
-      <td>
-        <@spring.bind "user.firstName"; status>
-          <input type="text" name="firstName" value="${status.value!}" />
-        </...@spring.bind>
-      </td>
-    </tr>
-    <tr>
-      <th>Last Name</th>
-      <td>
-        <@spring.bind "user.lastName"; status>
-          <input type="text" name="lastName" value="${status.value!}" />
-        </...@spring.bind>
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-<div id="statusValueNotReachable"><#if status??>${status.value!}</#if></div>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftlh
new file mode 100644
index 0000000..8cd8b14
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/bind-directive-basic-usages.ftlh
@@ -0,0 +1,54 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<table class="table">
+  <tbody>
+    <tr>
+      <th>E-Mail</th>
+      <td>
+        <@spring.bind "user.email"; status>
+          <input type="text" name="email" value="${status.value!}" />
+        </...@spring.bind>
+      </td>
+    </tr>
+    <tr>
+      <th>First Name</th>
+      <td>
+        <@spring.bind "user.firstName"; status>
+          <input type="text" name="firstName" value="${status.value!}" />
+        </...@spring.bind>
+      </td>
+    </tr>
+    <tr>
+      <th>Last Name</th>
+      <td>
+        <@spring.bind "user.lastName"; status>
+          <input type="text" name="lastName" value="${status.value!}" />
+        </...@spring.bind>
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+<div id="statusValueNotReachable"><#if status??>${status.value!}</#if></div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftl
deleted file mode 100644
index d608615..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftl
+++ /dev/null
@@ -1,70 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<@spring.hasBindErrors "user"; errors>
-  <div class="errors">
-    <#list errors.allErrors as error>
-      <div class="error">
-        ${spring.message(message=error)!}
-      </div>
-    </#list>
-  </div>
-</...@spring.hasBindErrors>
-
-<form method="POST" action="${spring.url('/users')}">
-  <table class="table">
-    <tbody>
-      <tr>
-        <th>E-Mail</th>
-        <td>
-          <@spring.bind "user.email"; status>
-            <input type="text" name="email" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>First Name</th>
-        <td>
-          <@spring.bind "user.firstName"; status>
-            <input type="text" name="firstName" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>Last Name</th>
-        <td>
-          <@spring.bind "user.lastName"; status>
-            <input type="text" name="lastName" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <td colspan="2">
-          <input type="submit" name="save" value="Save" />
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</form>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftlh
new file mode 100644
index 0000000..e394928
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/binderrors-directive-basic-usages.ftlh
@@ -0,0 +1,69 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<@spring.hasBindErrors "user"; errors>
+  <div class="errors">
+    <#list errors.allErrors as error>
+      <div class="error">
+        ${spring.message(message=error)!}
+      </div>
+    </#list>
+  </div>
+</...@spring.hasBindErrors>
+
+<form method="POST" action="${spring.url('/users')}">
+  <table class="table">
+    <tbody>
+      <tr>
+        <th>E-Mail</th>
+        <td>
+          <@spring.bind "user.email"; status>
+            <input type="text" name="email" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>First Name</th>
+        <td>
+          <@spring.bind "user.firstName"; status>
+            <input type="text" name="firstName" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>Last Name</th>
+        <td>
+          <@spring.bind "user.lastName"; status>
+            <input type="text" name="lastName" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">
+          <input type="submit" name="save" value="Save" />
+        </td>
+      </tr>
+    </tbody>
+  </table>
+</form>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
deleted file mode 100644
index 2498b5f..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftl
+++ /dev/null
@@ -1,41 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<div id="maxNumber">${spring.eval("T(java.lang.Math).max(12.34, 56.78)")}</div>
-
-<ul>
-  <#list users as user>
-    <li>
-      <div id="user-${spring.eval('user.id')!}">
-        ${spring.eval("user.firstName + ' ' + user.lastName")!}
-      </div>
-    </li>
-  </#list>
-</ul>
-
-<div id="firstUserId">${spring.eval("users[0].id")!}</div>
-
-<#assign numbers=spring.eval("{0,1,1,2,3,5,8,13}") />
-<div id="fibonacci"><#list numbers as number>${number}<#sep>, </#list></div>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftlh
new file mode 100644
index 0000000..1060b28
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/eval-function-basic-usages.ftlh
@@ -0,0 +1,40 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<div id="maxNumber">${spring.eval("T(java.lang.Math).max(12.34, 56.78)")}</div>
+
+<ul>
+  <#list users as user>
+    <li>
+      <div id="user-${spring.eval('user.id')!}">
+        ${spring.eval("user.firstName + ' ' + user.lastName")!}
+      </div>
+    </li>
+  </#list>
+</ul>
+
+<div id="firstUserId">${spring.eval("users[0].id")!}</div>
+
+<#assign numbers=spring.eval("{0,1,1,2,3,5,8,13}") />
+<div id="fibonacci"><#list numbers as number>${number}<#sep>, </#list></div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftl
deleted file mode 100644
index fe1e65e..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftl
+++ /dev/null
@@ -1,32 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<#if user??>
-  <div id="userId">${spring.message("user.id")!}</div>
-  <div id="userEmail">${spring.message("user.email")!}</div>
-  <div id="userInfoWithArgs">${spring.message("user.form.message", user.firstName, user.lastName, user.email)!}</div>
-<#else>
-  <div id="errorMessage">${spring.message(message=errorMessage)!}</div>
-</#if>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftlh
new file mode 100644
index 0000000..7b663c1
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/message-function-basic-usages.ftlh
@@ -0,0 +1,31 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<#if user??>
+  <div id="userId">${spring.message("user.id")!}</div>
+  <div id="userEmail">${spring.message("user.email")!}</div>
+  <div id="userInfoWithArgs">${spring.message("user.form.message", user.firstName, user.lastName, user.email)!}</div>
+<#else>
+  <div id="errorMessage">${spring.message(message=errorMessage)!}</div>
+</#if>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftl
deleted file mode 100644
index 13849bf..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftl
+++ /dev/null
@@ -1,55 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<@spring.nestedPath "user">
-  <table class="table">
-    <tbody>
-      <tr>
-        <th>E-Mail</th>
-        <td>
-          <@spring.bind "email"; status>
-            <input type="text" name="email" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>First Name</th>
-        <td>
-          <@spring.bind "firstName"; status>
-            <input type="text" name="firstName" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-      <tr>
-        <th>Last Name</th>
-        <td>
-          <@spring.bind "lastName"; status>
-            <input type="text" name="lastName" value="${status.value!}" />
-          </...@spring.bind>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</...@spring.nestedPath>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftlh
new file mode 100644
index 0000000..da231bd
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/nestedpath-directive-basic-usages.ftlh
@@ -0,0 +1,54 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<@spring.nestedPath "user">
+  <table class="table">
+    <tbody>
+      <tr>
+        <th>E-Mail</th>
+        <td>
+          <@spring.bind "email"; status>
+            <input type="text" name="email" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>First Name</th>
+        <td>
+          <@spring.bind "firstName"; status>
+            <input type="text" name="firstName" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+      <tr>
+        <th>Last Name</th>
+        <td>
+          <@spring.bind "lastName"; status>
+            <input type="text" name="lastName" value="${status.value!}" />
+          </...@spring.bind>
+        </td>
+      </tr>
+    </tbody>
+  </table>
+</...@spring.nestedPath>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftl
deleted file mode 100644
index efb503a..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftl
+++ /dev/null
@@ -1,31 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-<link rel="stylesheet" href="${spring.theme('styleSheet')}" type="text/css" />
-</head>
-<body>
-
-  <div id="user" class="${spring.theme('userClass', 'selected')}">
-    ${user.firstName!} ${user.lastName!}
-  </div>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftlh
new file mode 100644
index 0000000..de8f901
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/theme-function-basic-usages.ftlh
@@ -0,0 +1,30 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<head>
+<link rel="stylesheet" href="${spring.theme('styleSheet')}" type="text/css" />
+</head>
+<body>
+
+  <div id="user" class="${spring.theme('userClass', 'selected')}">
+    ${user.firstName!} ${user.lastName!}
+  </div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftl
deleted file mode 100644
index 0fb9e29..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftl
+++ /dev/null
@@ -1,28 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<@spring.bind "user.birthDate"; status>
-  <div id="userBirthDate">${spring.transform(status.editor, status.actualValue)}</div>
-</...@spring.bind>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftlh
new file mode 100644
index 0000000..ca53330
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/transform-function-basic-usages.ftlh
@@ -0,0 +1,27 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<@spring.bind "user.birthDate"; status>
+  <div id="userBirthDate">${spring.transform(status.editor, status.actualValue)}</div>
+</...@spring.bind>
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
deleted file mode 100644
index 8cc7c65..0000000
--- a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftl
+++ /dev/null
@@ -1,84 +0,0 @@
-<#ftl outputFormat="HTML">
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<body>
-
-<#-- NOTE: spring.url function should not use this number format. -->
-<#setting numberFormat="00000000" />
-
-<h2 id="usersListHeader">
-  <a href="${spring.url('/users/')}">Users List</a>
-</h2>
-
-<h3 id="usersListHeaderWithSortParams">
-  <a href="${spring.url('/users/', sortField='birthDate', sortDirection='descending')}">Users List</a>
-</h3>
-
-<h2 id="otherAppsUsersListHeader">
-  <a href="${spring.url('/users/', context='/otherapp')}">Users List</a>
-</h2>
-
-<h3 id="otherAppsUsersListHeaderWithSortParams">
-  <a href="${spring.url('/users/', context='/otherapp', sortField='birthDate', sortDirection='descending')}">Users List</a>
-</h3>
-
-<ul>
-  <#list users as user>
-    <li>
-      <div id="user-${user.id!}">
-        <a class="userIdLink" href="${spring.url('/users/{userId}/', userId=user.id)}">${user.id!}</a>
-        <a class="userNameLink" href="${spring.url('/users/${user.id}/')}">${user.firstName!} ${user.lastName!}</a>
-
-        <#attempt>
-          <a class="badUserBirthDateLink" href="${spring.url('/users/{userId}/', userId=user.id, birthDate=user.birthDate)}">${user.birthDate?date}</a>
-        <#recover>
-          <a class="goodUserBirthDateLink" href="${spring.url('/users/{userId}/', userId=user.id, birthDate=user.birthDate?string['yyyy-MM-dd'])}">${user.birthDate?date}</a>
-        </#attempt>
-
-      </div>
-    </li>
-  </#list>
-</ul>
-
-<div id="freeMarkerManualUrl">
-  <a href="${spring.url('http://freemarker.org/docs/index.html')}">Apache FreeMarker Manual</a>
-</div>
-
-<#-- List or Map is not allowed to pass as url parameter directly. -->
-<#assign userIdList = [ '101', '102' ] />
-<#assign userInfoMap = { "101": "John", "102": "Jane" } />
-
-<div id="listLinkTest">
-  <#attempt>
-    <a class="badListLink" href="${spring.url('/users/', items=userIdList)}">User List Link</a>
-  <#recover>
-    <a class="goodListLink" href="${spring.url('/users/', items=userIdList?join('_'))}">User List Link</a>
-  </#attempt>
-</div>
-<div id="mapLinkTest">
-  <#attempt>
-    <a class="badMapLink" href="${spring.url('/users/', items=userInfoMap)}">User List Link</a>
-  <#recover>
-    <a class="goodMapLink" href="${spring.url('/users/', items=userInfoMap?keys?join('_'))}">User List Link</a>
-  </#attempt>
-</div>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftlh
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftlh b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftlh
new file mode 100644
index 0000000..4ae19e2
--- /dev/null
+++ b/freemarker-spring/src/test/resources/META-INF/web-resources/views/test/model/url-function-basic-usages.ftlh
@@ -0,0 +1,83 @@
+<#--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<html>
+<body>
+
+<#-- NOTE: spring.url function should not use this number format. -->
+<#setting numberFormat="00000000" />
+
+<h2 id="usersListHeader">
+  <a href="${spring.url('/users/')}">Users List</a>
+</h2>
+
+<h3 id="usersListHeaderWithSortParams">
+  <a href="${spring.url('/users/', sortField='birthDate', sortDirection='descending')}">Users List</a>
+</h3>
+
+<h2 id="otherAppsUsersListHeader">
+  <a href="${spring.url('/users/', context='/otherapp')}">Users List</a>
+</h2>
+
+<h3 id="otherAppsUsersListHeaderWithSortParams">
+  <a href="${spring.url('/users/', context='/otherapp', sortField='birthDate', sortDirection='descending')}">Users List</a>
+</h3>
+
+<ul>
+  <#list users as user>
+    <li>
+      <div id="user-${user.id!}">
+        <a class="userIdLink" href="${spring.url('/users/{userId}/', userId=user.id)}">${user.id!}</a>
+        <a class="userNameLink" href="${spring.url('/users/${user.id}/')}">${user.firstName!} ${user.lastName!}</a>
+
+        <#attempt>
+          <a class="badUserBirthDateLink" href="${spring.url('/users/{userId}/', userId=user.id, birthDate=user.birthDate)}">${user.birthDate?date}</a>
+        <#recover>
+          <a class="goodUserBirthDateLink" href="${spring.url('/users/{userId}/', userId=user.id, birthDate=user.birthDate?string['yyyy-MM-dd'])}">${user.birthDate?date}</a>
+        </#attempt>
+
+      </div>
+    </li>
+  </#list>
+</ul>
+
+<div id="freeMarkerManualUrl">
+  <a href="${spring.url('http://freemarker.org/docs/index.html')}">Apache FreeMarker Manual</a>
+</div>
+
+<#-- List or Map is not allowed to pass as url parameter directly. -->
+<#assign userIdList = [ '101', '102' ] />
+<#assign userInfoMap = { "101": "John", "102": "Jane" } />
+
+<div id="listLinkTest">
+  <#attempt>
+    <a class="badListLink" href="${spring.url('/users/', items=userIdList)}">User List Link</a>
+  <#recover>
+    <a class="goodListLink" href="${spring.url('/users/', items=userIdList?join('_'))}">User List Link</a>
+  </#attempt>
+</div>
+<div id="mapLinkTest">
+  <#attempt>
+    <a class="badMapLink" href="${spring.url('/users/', items=userInfoMap)}">User List Link</a>
+  <#recover>
+    <a class="goodMapLink" href="${spring.url('/users/', items=userInfoMap?keys?join('_'))}">User List Link</a>
+  </#attempt>
+</div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0e85650a/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml b/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
index f5fcf24..796da8d 100644
--- a/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
+++ b/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
@@ -40,7 +40,7 @@
   <bean id="viewResolver" class="org.apache.freemarker.spring.web.view.FreeMarkerViewResolver">
     <property name="configuration" ref="configuration" />
     <property name="prefix" value="/views/" />
-    <property name="suffix" value=".ftl" />
+    <property name="suffix" value=".ftlh" />
   </bean>
 
   <bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">