我将一个项目从velocity 1.5更新到了2.2,现在我在集成测试中遇到了一些故障。例如,xpointer标记是XML的一部分,它会导致ParseException。在使用#xpointer转义它之后,问题就解决了。但是#xpointer不是一个速度命令。为什么它被认为是命令?有没有可能让velocity忽略它而不逃脱呢?为什么它在1.5版中没有出现问题?
xlink:href="urn:uuid:#xpointer(//foo:Bar发布于 2020-12-15 23:09:45
2.x解析器引入了几个新特性,这在某些情况下可能会带来问题。
由于Velocity允许定义自定义宏,因此解析器现在不能在运行时定义#xpointer是否是宏。当它导致解析错误时,它可以决定按原样呈现它,但这可能会导致忽略真正的解析错误,这些错误应该得到报告。
如果您想对此行为提出质疑,您可能需要使用open an issue。
作为一种解决办法,您也可以使用以下命令告诉Velocity忽略模板的特定部分,而不是逐个转义#:
#[[ ... #xpointer(...) ... ]]#https://stackoverflow.com/questions/65303184
复制相似问题