Ich versuche has_content
zu verwenden, um zu überprüfen, ob eine Map-Eigenschaft nicht leer ist, bevor Sie es als Boolean testen, weil das Datenmodell (aus Gründen, die schmerzhaft und langwierig sind) manchmal füllen Sie das Feld mit einer leeren Zeichenfolge anstelle eines Boolean.Freemarker "has_content" eingebaut verursacht unerwarteten Fehler
aber wenn ich versuche,
<#if (mecflag?has_content && mecflag)>
(Bedeutung, denke ich „, wenn die Variable nicht leer ist und wenn es Boolean ist true
), erhalte ich einen Fehler. Der Fehler besagt, dass Freemarker nicht mag .. die Tatsache, dass has_content
kein Kamel-Fall Kennung das scheint wirklich seltsam
ich verwende, was ich denke, die aktuelle stabile Freemarker ist, 2.3.25
der Fehlertext:.
Namenskonvention stimmt nicht überein. Bezeichner, die Teil der Vorlagensprache sind (nicht die vom Benutzer angegebenen), müssen konsistent die gleiche Namenskonvention innerhalb derselben Vorlage verwenden. Diese Vorlage verwendet die camel case-Namenskonvention (wie: exampleName), die durch automatische Erkennung in Zeile 37, Spalte 121 vom Token "upperCase" erstellt wurde, aber das problematische Token "has_content" verwendet eine andere Konvention.
Ja, aber sagt die Fehlermeldung, die Sie in Ihrer Frage zitiert haben, nicht dasselbe? Kannst du auch sagen, wo die Dokumentation inkonsistent ist? – ddekany
@ddekany Nun habe ich 'has_content' in der Dokumentation gefunden, die so geschrieben ist -' has_content'. Ich wusste bereits von '? UpperCase' usw. Zu einem Zeitpunkt, als ich keine Ahnung hatte, dass Freemarker sowohl' upper_case' als auch 'upperCase' oder' has_content' und 'hasContent' akzeptierte, war die Fehlermeldung überhaupt nicht hilfreich . Ich bin nicht sicher, wie die Dokumentation verbessert werden könnte. – Pointy
@ddekany das sagte, ich danke Ihnen für die Erhaltung der Freemarker. Es ist ein großartiges Werkzeug. – Pointy