在FTL中将javascript变量发送到我的模型

在FTL中将javascript变量发送到我的模型,javascript,java,arrays,freemarker,magnolia,Javascript,Java,Arrays,Freemarker,Magnolia,我有一个复选框列表,通过此函数我可以获得我的选中项数组: var selected = new Array(); $('#bloqCountries input:checked').each(function() { selected.push($(this).val()); }); 我有一个模型类,需要通过参数发送这个数组,如下所示: [#assign searchResults =model.searchContent(selected) /] 但Javascript在客户端,F

我有一个复选框列表,通过此函数我可以获得我的选中项数组:

 var selected = new Array(); 
 $('#bloqCountries input:checked').each(function() { selected.push($(this).val()); });
我有一个模型类,需要通过参数发送这个数组,如下所示:

 [#assign searchResults =model.searchContent(selected) /]
但Javascript在客户端,Freemarker在服务器端

然后我不知道如何让我的模型中的这个数组调用我的模型类

我的想法是根据请求生成,转换字符串中的数组,并在java中生成一个split()方法来删除单词之间的“-”


我不知道如何发送这些内容,因为我没有使用ajax,我认为没有必要这样做。

简单地说,你不能这样做。FTL模板在服务器上执行一次,以生成HTML并将其发送到浏览器。只有当浏览器接收并处理所述HTML时,才会执行JS。到那个时候,FTL过程早已停止

如果要与服务器通信,ajax是唯一的方法。您可能会在或中找到一些使用ajax w/Magnolia的灵感和示例

HTH,

Jan

您能否序列化(JSON.stringify(selected))数组并通过ajax将其发送到服务器?然后在服务器上解码JSON,就有了一个本机数组(Java中的任何数组)