Sagen Sie, dass mein Java-Code List<String> listS =null
hat, und ich überlasse dies meiner Vorlage-Datei.So überprüfen Sie auf Null Liste in Freimarker
Jetzt möchte ich sicherstellen, dass if list has some data then only do something
.
Ich habe
versucht<#if listS = null>
AND
<#if !listS>
AND
<#if listS?size=0>
Aber keiner von ihnen scheinen zu funktionieren. Ich habe ein bisschen Logik, ich habe Java Code; durch die, wenn eine Bedingung wahr ist, dann diese listS
und füllen Sie es.
Daher muss ich wissen, ob die listS
in meiner Vorlagendatei ausgefüllt wurde oder nur Null ist.
Wie mache ich das? Vielen Dank.
EDIT: Ich habe auch eine Liste von Strukturen, von denen jede diese Liste enthält, (bevölkert oder nicht ist ein anderes Problem), und ich übergebe die gesamte Liste der Struktur, also einen booleschen Wert an die Vorlage übergeben mit meiner Liste der Strukturen ist nicht möglich, da ich innerhalb jeder Liste durchqueren muss, und diese Traversierung möchte ich in der Vorlagendatei selbst machen.
EDIT 2: Für diejenigen, die wissen, was Java Null ist, behandelt FreeMarker 2.3.x sie als fehlende Werte. Die Template-Sprache kennt das Konzept Null einfach nicht. Wenn Sie zum Beispiel eine Bean haben, die die Eigenschaft maidenName hat, und der Wert dieser Eigenschaft null ist, dann ist das das Gleiche, als ob es überhaupt keine solche Eigenschaft gäbe, sofern die Vorlage betroffen ist (vorausgesetzt, Sie haben dies nicht getan) FreeMarker wurde so konfiguriert, dass ein extremer Objektwrapper verwendet wird. Das Ergebnis eines Methodenaufrufs, der null zurückgibt, wird auch als fehlende Variable behandelt (vorausgesetzt, Sie verwenden einen üblichen Objektwrapper). Weitere Informationen finden Sie in den FAQ.
Aber ich immer noch die Antwort für havent, wie es funktioniert, wenn überhaupt, kann ich.
Ich würde vorschlagen, immer die Liste zu initialisieren und Ihre Logik davon ab, ob die Größe der Liste größer als 0 ist. Obwohl, wenn Sie diese Art der Durchführung verwenden möchten, dann bin ich keine Hilfe, wie ich 'haven' Ich habe Freemarker vorher leider benutzt. –