- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Unterschied zwischen isNull() und isEmpty()
In Templates kann sowohl mit isNull() als auch mit isEmpty() auf leere Formularwerte geprรผft werden:
$CMS_IF(!st_text.isEmpty)$CMS_VALUE(st_text)$$CMS_END_IF$
$CMS_IF(!st_text.isNull)$CMS_VALUE(st_text)$$CMS_END_IF$
Was genau ist der Unterschied?
Gibt es eine Dokumentation zu solchen Methoden?
- Labels:
-
Developers
- Tags:
- templates
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
also das lรคsst sich sich relativ einfach an folgendem Beispiel erklรคren:
myNull.isNull: $CMS_VALUE(myNull.isNull)$
myNull.isEmpty: $CMS_VALUE(myNull.isEmpty)$
$CMS_SET(myString, "")$
myString.isNull: $CMS_VALUE(myString.isNull)$
myString.isEmpty: $CMS_VALUE(myString.isEmpty)$
$CMS_SET(myList, [])$
myList.isNull: $CMS_VALUE(myList.isNull)$
myList.isEmpty: $CMS_VALUE(myList.isEmpty)$
Ergibt folgende Ausgabe:
myNull.isNull: true
myNull.isEmpty: true
myString.isNull: false
myString.isEmpty: true
myList.isNull: false
myList.isEmpty: true
Zusammenfassend kann man wohl behaupten der Wert NULL ist auch immer "empty" umgekehrt aber nicht. isEmpty prรผft also Typ-Abhรคngig, isNull nicht. Wir verwenden in der Regel isEmpty, da das hรคufig der Logik entspricht mit der man im Template Entscheidungen treffen mรถchte.
Ich bin mir nicht sicher, ob man es propagieren sollte, aber isEmpty lรคsst sich auch einfacher schreiben:
$CMS_IF(myValue.empty)$ ...
Funktioniert einwandfrei und klappt auch mit den meisten get-Funktionen
Unter Vorlagenentwicklung -> Vorlagensyntax -> Datentypen steht was diese so kรถnnen.
Beste Grรผรe
Julius Mรผller
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
also das lรคsst sich sich relativ einfach an folgendem Beispiel erklรคren:
myNull.isNull: $CMS_VALUE(myNull.isNull)$
myNull.isEmpty: $CMS_VALUE(myNull.isEmpty)$
$CMS_SET(myString, "")$
myString.isNull: $CMS_VALUE(myString.isNull)$
myString.isEmpty: $CMS_VALUE(myString.isEmpty)$
$CMS_SET(myList, [])$
myList.isNull: $CMS_VALUE(myList.isNull)$
myList.isEmpty: $CMS_VALUE(myList.isEmpty)$
Ergibt folgende Ausgabe:
myNull.isNull: true
myNull.isEmpty: true
myString.isNull: false
myString.isEmpty: true
myList.isNull: false
myList.isEmpty: true
Zusammenfassend kann man wohl behaupten der Wert NULL ist auch immer "empty" umgekehrt aber nicht. isEmpty prรผft also Typ-Abhรคngig, isNull nicht. Wir verwenden in der Regel isEmpty, da das hรคufig der Logik entspricht mit der man im Template Entscheidungen treffen mรถchte.
Ich bin mir nicht sicher, ob man es propagieren sollte, aber isEmpty lรคsst sich auch einfacher schreiben:
$CMS_IF(myValue.empty)$ ...
Funktioniert einwandfrei und klappt auch mit den meisten get-Funktionen
Unter Vorlagenentwicklung -> Vorlagensyntax -> Datentypen steht was diese so kรถnnen.
Beste Grรผรe
Julius Mรผller
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vielen Dank. So ungefรคhr hatte ich mir das schon gedacht. Dann hรคngt es also vom Datentyp ab, wie sich die Methode isEmpty verhรคlt. In der Dokumentation ist mir noch aufgefallen, dass das gleiche auch fรผr die Methode isNull gilt, d.h. auch bei dieser Methode entscheidet der Datentyp selbst, wann er null ist.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Welche Stelle meinen Sie da?
$CMS_VALUE(null.isNull)$ liefert "true" (und keine Exception), alternativ kann man auch $CMS_VALUE(x == null)$ verwenden, fรผr Java-Entwickler sollte das die "natรผrlichere" Schreibweise sein.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das ist tatsรคchlich missverstรคndlich ausgedrรผckt. Was dort gemeint ist, das Eingabekomponenten einen Wert != null liefern kรถnnen, auch wenn kein Wert explizit gesetzt wurde, und daher der Benutzung von "isEmpty" besser geeignet ist.

