在FTL

时间:2016-02-10 17:38:53

标签: javascript java arrays freemarker magnolia

我有一个复选框列表,使用此功能我可以获取已检查项目的数组:

 var selected = new Array(); 
 $('#bloqCountries input:checked').each(function() { selected.push($(this).val()); });

我有一个模型类,我需要通过参数发送这个数组,如下所示:

 [#assign searchResults =model.searchContent(selected) /]

但Javascript在客户端,Freemarker在服务器端......

然后我不知道如何在我的模型中使用这个数组来调用我的modelClass ..

我的想法是通过请求,在字符串中转换数组并在java中创建split()方法来删除单词之间的“ - ”

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

1 个答案:

答案 0 :(得分:2)

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

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

HTH,