В настоящее время у меня есть рабочий метод, который проверяет, установлена ли переменная. Я делаю это так
CHECKING EACH VARIABLE:
#if($!{vh})
vh instance found!<br>
Classname: ${vh.class.name}<br>
#end
#if($!{su})
su instance found!<br>
Classname: ${su.class.name}<br>
#end
В настоящее время будет напечатано это:
ПРОВЕРКА КАЖДОГО ПЕРЕМЕННОГО: vh экземпляр найден! Имя класса: de.integration.commons.VelocityXPathHelper
su экземпляр найден! Имя класса: de.integration.commons.StringUtils
Подсказка: раньше я вводил эти переменные в контекст.
Поскольку мне нужно проверять множество переменных и вводить переменные иногда я создавал макрос, который должен делать то же самое, в сочетании с al oop для массива строк, который содержит известные введенные переменные, такие как:
#* Macro - checkIfVariableExists
This macro checks if variable exists with the quit reference notation
check http://velocity.apache.org/engine/devel/user-guide.html#quiet-reference-notation for more information *#
#macro (checkIfVariableExists $variablename)
#if($!{variablename})
$variablename instanz found!<br>
Classname: ${variablename.class.name}<br>
#end
#end
RESULT FROM LOOP:
#set( $toCheck = ["vh","su","anothervariable","...","....", "....."] )
#foreach( $value in $toCheck )
#checkIfVariableExists($value)
#end
Однако это не будет работать и результат в этот вывод:
РЕЗУЛЬТАТ ОТ L OOP: vh instanz найден! Имя класса: java .lang.String su instanz found! Имя класса: java .lang.String
Как мне сделать эту работу? Я понимаю, что значение является строкой, однако я хочу использовать его значение, как и в первом подходе. Любые идеи? Я использую двигатель скорости 1.7 и не могу перейти на более высокую версию.