speed.exception.ParseErrorException: обнаружено "<EOF>" в когда за #end следует _ - PullRequest
1 голос
/ 23 апреля 2020

Я получаю следующую ошибку при оценке шаблона скорости.

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_. Подчеркивание заставляет скорость игнорировать #end, поэтому оно не может оценить оператор if else.

Как я могу выполнить #if #elseif #end и сразу же следовать за ним _ без пробелов?

Спасибо.

1 Ответ

2 голосов
/ 23 апреля 2020

Нашел ответ.

Мне нужно заключить конец в фигурные скобки, чтобы отличить guish от остального текста.

#{end}_

Итак, мой шаблон

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

См. Самый конец http://people.apache.org/~henning/velocity/html/ch05s03.html

...