Мне нужно добавить несколько действительно сложных динамических 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?
- Если нет, могу ли я сделать что-то подобное с другим движком шаблонов?
- Есть ли лучший способ сделать то, что я пытаюсь сделать?