Apache Velocity:自定义指令的非拉丁名称

时间:2016-10-07 10:16:22

标签: java velocity directive

如何使用本地化名称执行自定义速度指令。 现在忽略了这样的指令。 例如:

int main(){}

输入文字:class MyDirective extends Directive { @Override public String getName() { return "Пример"; } @Override public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { writer.write("example"); return true; } }

预期#Пример(),但未经修改的文字example

1 个答案:

答案 0 :(得分:0)

根据此标识符定义

是速度解析器限制
<PRE_REFERENCE,REFMODIFIER,REFMOD2>
TOKEN :
{
    <#ALPHA_CHAR: ["a"-"z", "A"-"Z", "_"] >
|   <#IDENTIFIER_CHAR: [ "a"-"z", "A"-"Z", "0"-"9", "_" ] >
|   <IDENTIFIER:  ( <ALPHA_CHAR> ) (<IDENTIFIER_CHAR>)* >
    {
        if (curLexState == PRE_REFERENCE)
        {
            SwitchTo(REFERENCE);
        }
    }
}