Freemarker中的串联字符串

use*_*772 2 template-engine freemarker string-concatenation

如何在freemarker中连接字符串?

这行不通。

    <#function foo input>
<#local str="Hello ">
${str} = ${str} + ${" world"}

<#return str>
</#function>

${foo("a")}
Run Code Online (Sandbox Code Playgroud)

这是在线评估者:http :
//freemarker-online.kenshoo.com/

编辑:为了清楚起见,我需要将其与变量一起使用,以便能够编写类似这样的内容。


public String sayHello() {return "Hello";}
public String sayWorld() {return "world"};
public String sayPeople() {return "people";}

public void main() { 
 String str = "";
 str += sayHello();
 str += "";
 str += sayWorld();
 str += "";
 str += sayPeople();

 return str;
}
Run Code Online (Sandbox Code Playgroud)

dde*_*any 5

喜欢<#return "Hello " + input + "!">,或<#return "Hello ${input}!">。如果您尝试打印到a内#function(而不是a内#macro)的输出,它将被忽略。

编辑:与添加的Java示例类似:

<#function concatDemo>
 <#local str = "">
 <#local str += sayHello()>
 <#local str += " ">
 <#local str += sayWorld()>
 <#local str += "!">
 <#return str>
</#function>

<#function sayHello><#return "Hello"></#function>
<#function sayWorld><#return "World"></#function>

${concatDemo()}
Run Code Online (Sandbox Code Playgroud)