首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析java代码模板时速度分析器崩溃

问解析java代码模板时速度分析器崩溃
EN

Stack Overflow用户
提问于 2015-04-21 13:36:39
回答 1查看 3.3K关注 0票数 2

当试图使用java源代码作为速度的模板时,它会在模板的这一行崩溃:

代码语言:javascript
复制
/*  @see panama.form.Validator#validate(java.lang.Object) */

除此外:

代码语言:javascript
复制
Exception in thread "main" org.apache.velocity.exception.ParseErrorException: Lexical error,   Encountered: "l" (108), after : "." at *unset*[line 23, column 53]
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1301)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1265)
at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:199)

显然,它使用#validate作为宏,并在试图解析宏的参数时崩溃。有人能做些什么吗?

我用的是速度1.7。

编辑

我知道我可以转义模板文件中的#字符,但也有相当多的字符可能会不时更改,所以我更喜欢不需要对文件进行手动更改的方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 13:42:16

First option在这里尝试此解决方案:转义VTL指令

可以使用反斜杠字符("\")以类似于有效的VTL引用的方式转义VTL指令。

代码语言:javascript
复制
## #include( "a.txt" ) renders as <contents of a.txt>
#include( "a.txt" )

## \#include( "a.txt" ) renders as #include( "a.txt" )
\#include( "a.txt" )

## \\#include ( "a.txt" ) renders as \<contents of a.txt>
\\#include ( "a.txt" )

第二个选项您有这个工具[EscapeTool][2]。用于在速度模板中使用转义的工具。

它为、JavaScript、HTML和JavaScript提供了转义输出的方法。还提供方法来呈现否则需要转义的VTL字符。

第三选项:您也可以尝试这个解决方法,我没有使用它,但是它应该可以工作:

您可以在开始时将模板读取为String,然后将其作为预解析。例如,将所有#替换为\#,或添加到文件的开头

代码语言:javascript
复制
  #set( $H = '#' )
  $H$H

请参阅这个答案:如何在速度上避开#,然后从预解析的 String中使用以下答案创建模板:如何使用字符串作为速度模板?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29773809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档