I have found the strangest problem. I have created an object in JavaScript and expected to be able to access it using Freemarker. I can access objects created in and by freemarker, and I can access arrays created in either JavaScript or Freemarker. I am hoping someone can tell me what I am doing wrong here.XML:<webscript>
<shortname>testObjectListing</shortname>
<description>testObjectListing</description>
<url>/test/testObjectListing</url>
<authentication>user</authentication>
<transaction>required</transaction>
<format default="html">any</format>
</webscript>
JavaScript:
// test hash
model.hFromJS = {"1":"mouse", "2":"test"};
// test array
model.aFromJS = ["some", "strings"];
FTL:
Test object in FTL:<br>
<#assign h = {"1":"harbor", "2":"lancaster", "sweet":"cinnamon"} >
<#if h?is_hash >h is a hash<br> </#if>
<#if h?is_hash_ex>h is an extended hash<br></#if>
<#assign keys = h?keys>
Length of h?keys = ${keys?size}<br>
<#list keys as key>${key} = ${h[key]}<br> </#list>
<br>
<br>
Test object from JS:<br>
<#if hFromJS?is_hash >hFromJS is a hash<br> </#if>
<#if hFromJS?is_hash_ex>hFromJS is an extended hash<br></#if>
<#assign keys = hFromJS?keys>
Length of hFromJS?keys = ${keys?size}<br>
<#list keys as key>${key} = ${h[key]}<br> </#list>
<br>
<br>
Test array from JS:<br>
<#– For good measure –>
<#if aFromJS?is_hash >aFromJS is a hash<br> </#if>
<#if aFromJS?is_hash_ex >aFromJS is an extended hash<br></#if>
<#if !aFromJS?is_hash >aFromJS is NOT a hash<br> </#if>
<#if !aFromJS?is_hash_ex>aFromJS is NOT an extended hash<br></#if>
Length of aFromJS = ${aFromJS?size}<br>
<#list aFromJS as item>${item}<br> </#list>
Output HTML:Test object in FTL:<br>
h is a hash<br>
h is an extended hash<br>
Length of h?keys = 3<br>
1 = harbor<br> 2 = lancaster<br> sweet = cinnamon<br>
<br>
<br>
Test object from JS:<br>
hFromJS is a hash<br>
hFromJS is an extended hash<br>
Length of hFromJS?keys = 0<br>
<br>
<br>
Test array from JS:<br>
aFromJS is NOT a hash<br>
aFromJS is NOT an extended hash<br>
Length of aFromJS = 2<br>
some<br> strings<br>
I'm running Alfresco Community Edition 3.2 which apparently uses FreeMarker 2.3.13.