有没有一种方法可以按照传统的代码调试方式来调试 Velocity 模板?

问题描述 投票:0回答:4

我们在 Web 应用程序中大量使用 Velocity。 虽然调试 Java 方面并确保正确填充 Velocity Context 很容易,但能够在合并步骤中逐步解析 VTL、设置断点等将非常有价值。是否有任何工具或 IDE/IDE 插件可以通过 VTL(速度模板语言)实现这种事情?

debugging templates velocity vtl
4个回答
7
投票

我还没有找到。我能得到的最接近的是hack一个日志框架来打印出你想要的信息。

你所做的是:

  1. 创建一个带有返回布尔值的日志记录方法的类。
  2. 将对象注入到速度上下文中
  3. 从速度模板内部,您可以使用
    #if($logger.log($data)) #end
  4. 调用记录方法

3
投票

可能有吗?但我发现,如果所有内容都放入一个特殊的地图中,即放入上下文中,则有效。 因此,您可以在渲染时将这个特殊地图的全部内容回显到屏幕(无需知道键)...从而指示上下文中任何点的任何给定项目的确切值。 它并不是万无一失的,但 VTL 似乎只适用于“快速而肮脏”的东西。


1
投票

没有单步执行,也没有某种内置的“打印变量”。这也让我困扰,但使用速度是我加入我们的项目之前做出的决定......


0
投票

如果您的速度宏调用 java 方法,您可以在该方法中放置一个断点。没什么帮助,但总比没有好。

就我个人而言,我通常将变量“打印”到html中,但这非常危险,因为我很容易忘记删除...

© www.soinside.com 2019 - 2024. All rights reserved.