Мне нужно добавить несколько очень сложных динамических структур HTML в мой шаблон Velocity. Если бы я попытался написать их прямо в шаблоне, это был бы полный беспорядок.
Позвольте мне объяснить, что я пытаюсь сделать... скажем, на моем веб-сайте пользователь может оставлять комментарии. Вместо того, чтобы писать всю сложную динамическую структуру HTML, которая входит в таблицу комментариев и форму публикации, я хотел бы иметь возможность сделать это в своем шаблоне:
<div>
// call to a method that generates the comments table
</div>
<div>
// call to a method that generates the comments form
</div>
В Ruby On Rails есть вещи, которые называются помощники, которые позволяют вам из шаблонов вызывать, по сути, метод, который возвращает динамически сгенерированный фрагмент HTML для встраивания в шаблон прямо там, где вы его вызываете. В хелперах хорошо то, что вы тратите ЦП только на те, которые используете. С методом VelocityContext.put()
кажется, что мне нужно заранее сгенерировать все, что мне нужно. Это проблема, потому что в конечном итоге у меня будет около 50 разных помощников, и мне нужен веб-дизайнер, не являющийся программистом, чтобы иметь возможность менять их местами по своему желанию.
Поэтому я спрашиваю,
- Могу ли я сделать что-то подобное с Velocity?
- Если нет, могу ли я сделать что-то подобное с другим механизмом шаблонов?
- Есть ли лучший способ сделать то, что я пытаюсь сделать?