【问题标题】:org.apache.velocity.exception.ParseErrorException: Encountered "="org.apache.velocity.exception.ParseErrorException:遇到“=”
【发布时间】:2014-08-23 09:27:49
【问题描述】:

此代码有效:

Project : «$project.Name»
Developers (Section) : 
--------------------------------------------------------------------------------------------------------------------------------------
«#foreach($developer in $developers)»«$developer.Name»

«#end»

但这个不是:

Project : «$project.Name»
Developers (Section) : 
--------------------------------------------------------------------------------------------------------------------------------------
«#foreach($developer in $developers)»«$developer.Name»
«[#if($developer.Name='Angelo')]1[/#if]»    
«#end»

这是我作为freemarker模板输入单词的代码,错误在于“if”子句。流动的错误是:线程“主线程”中的异常 org.apache.velocity.exception.ParseErrorException: Encountered "=" at fr.opensagres.xdocreport.document.docx.DocxReport@9affcf!word/document.xml[line 1 , 第 3211 栏]

谁能告诉我发生了什么?

【问题讨论】:

  • 我不知道速度,但我很确定你需要使用 == 来比较 :)
  • 当我将“=”更改为“==”然后引发另一个错误:线程“主线程”org.apache.velocity.exception.ParseErrorException:在fr遇到“]”中的异常。 opensagres.xdocreport.document.docx.DocxReport@95bf4f!word/document.xml[第 1 行,第 3229 列]
  • 在代码中混合速度和 freemarker 语法有什么原因吗?

标签: velocity freemarker xdocreport


【解决方案1】:

问题是您需要使用双等号,例如:

#foreach($developer in $developers) 
  $developer.Name
  #if($developer.Name=='Angelo')
   1
  #end   
#end

此外,您不需要在运算符周围的速度中使用方括号。

【讨论】:

    【解决方案2】:

    好吧,我终于知道是哪一个问题了。我用“”结束我的“if”子句。这是不正确的。正确的做法是使用“”标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 2013-10-04
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多