Apache Velocity:自定义指令的非拉丁名称
Apache Velocity: non-latin names of the custom directives
如何使用本地化名称执行自定义速度指令。
这样的指令现在被忽略了。
例如:
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
,但得到未修改的文本 #Пример()
根据此标识符定义,这是一个速度解析器限制
<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);
}
}
}
如何使用本地化名称执行自定义速度指令。 这样的指令现在被忽略了。 例如:
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
,但得到未修改的文本 #Пример()
根据此标识符定义,这是一个速度解析器限制
<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);
}
}
}