You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Freemarker序列转换为Javascript数组?

解决Freemarker序列转Javascript数组的问题

直接输出Freemarker序列会报错,因为${...}语法要求输出的是可自动转为字符串的类型(字符串、数字、日期、布尔等),而序列(Sequence)不符合这个要求。下面是两种可行的解决方式:

方法一:使用?js_string内置函数(推荐)

Freemarker提供了专门的内置函数?js_string,可以把Freemarker对象直接转换为合法的JavaScript字面量,序列会自动转为JS数组格式:

var myValues = ${values?js_string};

执行后会生成符合JS语法的数组:

var myValues = ["Joe", "Sally", "Sue"];

这个函数还会自动处理字符串中的特殊字符(比如引号、换行符),避免JS语法错误或XSS风险。

方法二:手动遍历序列拼接数组

如果你的Freemarker版本较旧,没有?js_string函数,可以通过遍历序列手动构建JS数组:

var myValues = [
<#list values as val>
  "${val?js_string}"<#if val_has_next>,</#if>
</#list>
];

这里给每个元素加上?js_string是为了确保字符串内容符合JS语法规范,同时用val_has_next判断是否添加逗号,避免数组末尾出现多余逗号导致语法错误。

内容的提问来源于stack exchange,提问作者Walker Farrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 03:42:33