velocity.exception.ParseErrorException:在<未知模板>处遇到"<EOF>",当 #end 后跟 _



在评估速度模板时,我得到以下错误。

Encountered "<EOF>" at <unknown template>[line 1, column 170]
Was expecting one of:
"[" ...
"(" ...
<RPAREN> ...
<ESCAPE_DIRECTIVE> ...
<SET_DIRECTIVE> ...
"##" ...
"\\" ...
"\" ...
<TEXT> ...
"*#" ...
"*#" ...
"]]#" ...
<STRING_LITERAL> ...
<END> ...
<IF_DIRECTIVE> ...
<ELSEIF_DIRECTIVE> ...
<ELSE_DIRECTIVE> ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<WORD> ...
<BRACKETED_WORD> ...
<IDENTIFIER> ...
<DOT> ...
"{" ...
"}" ...
<EMPTY_INDEX> ...
<DOT> ...

我正在评估的模板是这样的。

${fileName}_#if( $noticeType == 'typeA' )TypeAlpha#elseif( $noticeType == 'typeB' )TypeBeta#end_$date.format('yyyyMMdd', $myDate)

我需要整个字符串没有空格,并遵循fileName_TypeAlpha_20200423的格式,所以我的问题是#end_。下划线导致velocity忽略#end,因此它无法计算if-else语句。

我如何执行#if#elseif#结尾,然后立即执行一个没有空格的_

谢谢。

找到了答案。

我需要将结尾用花括号括起来,以将其与正文的其余部分区分开来。

#{end}_

所以我的模板是

${fileName}_#if( $noticeType == 'typeA' )TypeAlpha#elseif( $noticeType == 'typeB' )TypeBeta#{end}_$date.format('yyyyMMdd', $myDate)

看到的最后http://people.apache.org/~henning/versity/html/ch05s03.html

最新更新