0

我正在使用带有 Velocity 和 VelocityViewServlet 的 Apache Tomcat。我创建了一个参考 ViewContext 的自定义工具。这一切都很好。

问题是:定位/加载模板并使用提供的参数对其进行处理的最佳方法是什么?

我已经有了通过获得的文件的绝对路径

((ViewContext)context).getRequest().getSession().getServletContext().getRealPath("/")
  • 我必须实例化 VelocityEngine 吗?我想 Velocity 没有全局维护(VelocityViewServlet)
  • 哪种(以及如何)最适合使用 Velocity 装载机?
4

1 回答 1

0

这里有几点:

  • VelocityViewServlet 将自己实例化一个 VelocityEngine。它不是全局的,它是每个 ServletContext 一个引擎。

  • VelocityViewSerlet 将使用其默认加载器 (WebappLoader) 为自己定位与请求 URI 对应的模板,因此您也不必自己做。

  • 您的模板将用于评估的 Velocity 上下文已经填充了所有标准工具(对于工具 2.0),其中 $params 允许您检查 HTTP 参数。

  • 我不理解“引用 ViewContext 的自定义工具”:您应该在此处列出的属性中将所需的所有适当设置器添加到自定义工具中,而不是使用 ViewContext (例如,如果您需要访问请求,然后您将声明一个“公共 setRequest(HttpServletRequest request)”方法)。请记住,从自下而上的角度来看,您的工具必​​须只能通过您在工具配置文件中为其选择的密钥访问,并且不应该知道 Velocity。

  • 我建议你使用 VelocityTools 2.0,它是一个比 1.x 更成熟的库。

于 2012-09-13T13:22:08.757 回答