Скорость и игнорирование возврата метода Java - PullRequest
0 голосов
/ 29 января 2009

Я хочу добавить элемент в список в моем макросе Velocity. Это единственный способ избежать появления «истинного» текста на выходе Velocity?

#set($path = [])
#set($swallow = "a")

#set ($swallow = $path.add("blaablaa"))

Ответы [ 2 ]

6 голосов
/ 03 февраля 2009

Да, если ты хочешь заткнуться, тогда #set - твой друг. Многие люди сокращают это с помощью такого макроса:

#macro( call $this )#set( $stfu = $this )#end

Тогда вы можете сократить до

#call( $path.add('blaablaa') )
3 голосов
/ 29 января 2009

Я должен согласиться с Теренсом Парром (отцом StringTemplate ), который имеет соответствующие комментарии в интервью с Artima и хорошей статьей о разделении моделей и видов .

Шаблоны должны быть ограничены чистой презентацией. Так же, как мы не должны помещать детали уровня представления в модель, мы не должны помещать манипуляции с данными в наши шаблоны. Выполнение любого из них обычно приводит к усложнению обслуживания и даже усложняет определение , где для обслуживания.

Основываясь на моем собственном опыте работы с Velocity и StringTemplate, я настоятельно рекомендую взять проблему в вашем вопросе (артефакты манипулирования данными, делающими шаблон более сложным) в качестве подсказки и перенести все манипуляции со структурами данных на уровень Java .

...