gpt4 book ai didi

Apache 速度 + Tomcat : Manually process templates within web-app

转载 作者:行者123 更新时间:2023-11-28 23:47:36 24 4
gpt4 key购买 nike

我正在将 Apache Tomcat 与 Velocity 和 VelocityViewServlet 一起使用。我创建了一个引用 ViewContext 的自定义工具。一切正常。

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

我已经有了通过

获取的文件的绝对路径
((ViewContext)context).getRequest().getSession().getServletContext().getRealPath("/")
  • 我必须实例化 VelocityEngine 吗?我想 Velocity (VelocityViewServlet) 没有全局维护
  • 哪种(以及如何)Velocity 加载器最适合使用?

最佳答案

这里有几点:

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

  • VelocityViewSerlet 将使用其默认加载程序 (WebappLoader) 将自己定位到与请求 URI 相对应的模板,因此您也不必自己执行此操作。

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

  • 我不明白“引​​用 ViewContext 的自定义工具”:您不应该使用 ViewContext,而是应该在属性中添加您需要的所有适当的 setter 到您的自定义工具 listed here (例如,如果您需要访问请求,那么您将声明一个“public setRequest(HttpServletRequest request)”方法)。请记住,从自下而上的角度来看,您的工具必​​须只能通过您在工具配置文件中为其选择的 key 访问,并且不应知道 Velocity。

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

关于 Apache 速度 + Tomcat : Manually process templates within web-app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12264223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com