2014-06-20 2 views
5

Das isOffline Feld in meinem Websetting-Objekt ist ein boolescher Typ. In meiner Freemarker-Vorlage muss ich prüfen, ob es falsch ist.Testvariable vom booleschen Typ in Freemarker

Also habe ich die folgenden, aber es nicht

<#if !websetting.isOffline> false </#if> 

Es sieht nicht funktioniert wie Freemarker die Nicht ! nicht unterstützt. Ich habe auch versucht <#if websetting.isOffline == false> false </#if>, aber es funktioniert nicht.

+0

Haben Sie Getter-Methode für 'isOffline'-Eigenschaft? Wie heißt es? –

+0

Die Getter-Methode ist ** public boolean isOffline() {return this.isOffline; } **, Vielen Dank! – TonyGW

Antwort

6

Die isOffline ist nicht der beste Name für eine boolesche Eigenschaft, da die Standard-Getter-Methode dafür auch isOffline ist.

Wenn Sie den Namen der Eigenschaft nicht ändern können, zeigen Sie an, dass Sie die Methode in der Vorlage mit () aufrufen möchten.

<#if !websetting.isOffline()> false </#if> 

Aber es ist besser Namen etwas w/o is vor ihm (zum Beispiel zu offline) zu ändern. Dann können Sie es in der Vorlage verwenden.

<#if !websetting.offline> false </#if> 
+0

Das ist falsch, zumindest ohne einen seltsamen benutzerdefinierten 'ObjectWrapper' zu verwenden. 'boolean isOffline()' (oder 'boolean getOffline()') definiert die JavaBean Eigenschaft namens "offline", so dass Sie in FreeMarker wie 'websetting.offline' auf seinen * Wert * zugreifen können, ohne' is' und '()' . OTOH Wenn Ihre Java-Methode 'boolean offline()' ist, dann werden Sie der JavaBeans-Spezifikation nicht entsprechen und es wird eine einfache Methode sein, also müssen Sie 'websetting.offline()' in FreeMarker schreiben, mit dem '() '. – ddekany

+1

@ddekany: Der Name der OP-Eigenschaft war 'isOffline' mit einem Getter' isOffline'. –

+0

Wenn das OP nicht 'BeanInfo' verwendet hat, ist der Eigenschaftsname für' boolean isOffline() '' offline', nicht 'isOffline'. – ddekany

Verwandte Themen