Apache Velocity + Tomcat: ручная обработка шаблонов в веб-приложении

Я использую Apache Tomcat с Velocity и VelocityViewServlet. Я создал пользовательский инструмент со ссылкой на ViewContext. Все работает хорошо.

Вопрос в том, каков наилучший способ найти / загрузить шаблон и обработать его с помощью поставляемых параметров?

У меня уже есть абсолютный путь к файлу, полученному через

((ViewContext)context).getRequest().getSession().getServletContext().getRealPath("/")
  • Нужно ли создавать экземпляр VelocityEngine? Я полагаю, что нет глобальных поддерживаемых Velocity (VelocityViewServlet)
  • Какой (и как) загрузчик Velocity лучше всего использовать?

1 ответ

Решение

Несколько моментов здесь:

  • VelocityViewServlet будет создавать экземпляр VelocityEngine. Это не глобально, это один движок на ServletContext.

  • VelocityViewSerlet сам найдет шаблон, соответствующий URI запроса, используя загрузчик по умолчанию (WebappLoader), поэтому вам не придется делать это самостоятельно.

  • Контекст Velocity, с которым будет оцениваться ваш шаблон, уже будет заполнен всеми стандартными инструментами (для инструментов 2.0), среди которых $params, который позволяет вам проверять параметры HTTP.

  • Я не понимаю "пользовательский инструмент со ссылкой на ViewContext": вместо использования ViewContext вы должны добавить в свой пользовательский инструмент все необходимые средства настройки среди свойств, перечисленных здесь (например, если вам нужен доступ к запросу) затем вы объявите метод "public setRequest(запрос HttpServletRequest)"). Помните, что с точки зрения снизу вверх, ваш инструмент должен быть доступен только через ключ, который вы выбрали для него в файле конфигурации инструментов, и не должен знать о скорости.

  • Я советую вам использовать VelocityTools 2.0, которая является более зрелой библиотекой, чем 1.x.

Другие вопросы по тегам