当评估一个速度模板时,我得到以下错误。
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语句,并在后面紧跟一个#if #elseif #end语句。_
没有空格?
谢谢。
找到答案了。
我需要用大括号包住结尾,以区别于文本的其他部分。
#{end}_
所以我的模板是
${fileName}_#if( $noticeType == 'typeA' )TypeAlpha#elseif( $noticeType == 'typeB' )TypeBeta#{end}_$date.format('yyyyMMdd', $myDate)
请看最后 http:/people.apache.org~henningvelocityhtmlch05s03.html。