2016-05-04 16 views
1

In Freemarker, ich möchte etwas behandeln, die (nicht definiert auf bestimmtes Objekt oder in bestimmten Map), haben einen null Wert sein, eine leere Zeichenfolge "" oder eine Zeichenfolge mit Leerzeichen nur (" \t\n"), AKA leere Zeichenfolge möglicherweise fehlt. Oder ein realer Wert wie "foo".Freemarker - Standardwert für die fehlende oder leere Variable?

Wenn es außer einer nicht leeren Zeichenfolge etwas gibt, möchte ich, dass der Ausdruck einen Standardwert zurückgibt.

Wie kann ich das in Freemarker umgehen?

Bisher ist es das, was ich benutze:

${ obj.propery???then(obj.property?trim!"default") } 

Aber ich kann etwas mehr ellegant, wie

${ obj.property!!?trim!"default" } 

und sogar mit Besatz (das ist durchaus üblich, den Betrieb für Vorlagen) vorstellen:

${ obj.property!!!"default" } 

Gibt es so etwas im Freemarker? (Neben der Codierung meiner eigenen Methode oder Makro.)

Antwort

0

Es gibt nichts in FreeMarker dafür, zumindest nicht in 2.3.24. Ich denke, der beste Weg, dies zu adressieren ist eine trimToNull Funktion zu betreiben, und dann können Sie schreiben trimToNull(obj.property)!"default" und , etc.