Chcę zaktualizować makro, które jest współużytkowane przez wiele różnych plików .vtl, aby dodać nowy parametr. Jednak chcę tylko zmienić połączenie w jednym z moich plików .vtl i pozostawić pozostałe bez zmian. Tak więc, zasadniczo chcę dodać opcjonalny parametr lub parametr z wartością domyślną, jeśli nie podano parametru.Domyślne wartości parametru makra Apache Velocity
Dokumentacja (here) wspomina o opcjonalnych wartościach domyślnych w sekcji "#macro", ale po kilku godzinach wiercenia się z nimi nie mogę dla całego życia ustalić, jaka jest właściwa składnia.
Więc chcę wziąć istniejącego makra:
#macro(my_macro)
oldValue
#end
i przekształcić go w makro jak:
#macro(my_macro $param="oldValue")
$param
#end
Gdzie mogę to nazwać właściwie z żadnym z tych dwóch połączeń i uzyskać określone wyjścia:
#my_macro() => oldValue
#my_macro("newValue") => newValue
Próbowałem każdej permutacji tego, co określono w dokumentacji, ale nie mogę znaleźć niczego, co działa. Czy ktokolwiek zna właściwą składnię? Czy jest jakaś właściwość, której mi brakuje?
Używam Velocity 1.7 i VelocityTools 2.0. Używam też ustawienia velocimacro.arguments.strict=true
velocimacro.arguments.strict=true
velocimacro.arguments.strict=true
Nie można jednak łatwo zmienić tej właściwości bez konieczności aktualizacji/ponownego testowania.
Tak, skończyło się tą drogą, ale to wymaga mnie do zmiany velocimacro ścisłego właściwość false który tak naprawdę nie chcą robić. Ale cokolwiek, wszystko dobrze się kończy. – LoganBlack