freemarker如何使用带有include的字符串中的split

sen*_*ale 2 freemarker

<#assign reasonValue="xxx.ftl">
Run Code Online (Sandbox Code Playgroud)

我称之为:

<#include "${reasonValue}">
Run Code Online (Sandbox Code Playgroud)

我输出如下:

Rejected - Something
Run Code Online (Sandbox Code Playgroud)

我现在怎样才能在这个输出上使用split,因为我想得到的只是Something输出

我试过了:

<#list "${reasonValue}"?split("-") as sValue>
        ${sValue}
        </#list>
Run Code Online (Sandbox Code Playgroud)

但问题是,我得到ftl文件的名称而不是真正的价值...

Ale*_*r M 5

将include的输出分配给某个变量,然后split对此变量使用.

<#assign xx>
  <#include reasonValue>
</#assign>

<#list xx?split("-") as sValue>
  ${sValue}
</#list>
Run Code Online (Sandbox Code Playgroud)

如果你需要在" - "之后只显示部分字符串,那么使用substringindex_of.

${xx?substring(xx?index_of("-") + 2)}
Run Code Online (Sandbox Code Playgroud)

  • 在 2.3.21 中,您可以使用 `xx?keep_after("- ")` 而不是 `xx?substring(xx?index_of ...etc)`。 (2认同)