Strings mit Velocity in iterierbare Elemente zerlegen

Community help and discussion for RapidRep Designer Application

Strings mit Velocity in iterierbare Elemente zerlegen

Postby jungt » 05 Sep 2016, 12:43

Um mit RapidRep in der Version 5.7.x einen String zu zerlegen, und dann über die daraus resultierenden Elemente zu iterieren, reicht es nicht aus, lediglich die .split()-Methode aufzurufen.
Im Folgenden das dazugehörige Beispiel:
Code: Select all
#set($string = "ABC, DEF, GHI")
#set($split = $string.split (', '))
$RR.listElements($split, ' ')

Evaluiert man dieses Beispiel, erhält man die Ausgabe
Code: Select all
$RR.listElements($split, ' ')
anstatt der erwarteten Elemente des Arrays.

Dies liegt daran, dass $RR.listElements Daten im Typ "Iterable" erwartet, $string.split(', ') die Daten aber als Array zurückliefert, und ein Array nicht vom Typ "Iterable" ist.

Damit man die gesplitteten Daten als Liste verwenden kann, muss zuvor noch eine Umwandlung stattfinden:
Code: Select all
#set($string = "ABC, DEF, GHI")
#set($split = $string.split (', '))
#set($list = $RR.newList($split))

$RR.listElements($list, ' ')
Entscheidend ist hierbei die Methode "$RR.newList": Sie wandelt Daten in den benötigten Typ.
Danach können die Elemente durch den Aufruf von $RR.listElements($list, ' ') aufgelistet werden.

Weiterhin wird die Verwendung der Listenelemente in bspw. einer Schleife möglich:
Code: Select all
#set($string = "ABC, DEF, GHI")
#set($split = $string.split (', '))
#set($list = $RR.newList($split))

#foreach($element in $list)
$element
#next
Dieses Codebeispiel gibt jedes Element der Liste aus.
jungt
 
Posts: 12
Joined: 24 Feb 2014, 09:20

Return to RapidRep Designer



Who is online

Users browsing this forum: No registered users and 1 guest

cron