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.