2016-05-01 11 views
1

Wie kann ich Zeichenfolgen in Freimarker verketten?Verkettungszeichenfolgen in Freimarker

Dies funktioniert nicht. Hier

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

<#return str> 
</#function> 

${foo("a")} 

ist eine Online-Auswerter:
http://freemarker-online.kenshoo.com/

Edit: Um es klar, dass ich es mit Variablen verwenden müssen, können schreiben, so etwas zu sein.


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; 
} 

Antwort

1

Wie <#return "Hello " + input + "!"> oder <#return "Hello ${input}!">. Wenn Sie versuchen, innerhalb eines #function (im Gegensatz zu einem #macro) an den Ausgang zu drucken, wird es ignoriert.

Edit: Analog mit dem Java-Beispiel hinzugefügt:

<#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()} 
+0

Danke, aber Sie übersprungen vollständig die Variable, die ich verwenden müssen. Bitte sehen Sie meine Bearbeitung. – user1097772