簡體   English   中英

Apache 速度轉義點字符

[英]Apache Velocity Escape Dot Character

我開始研究 Velocity 的模板,但我似乎無法在變量名后轉義點字符。 下面是我的模板。

## function.vm
void functionA() {
    int minimum_value = $class_name.MIN_VALUE;
    int maximum_value = $class_name.MAX_VALUE;
}

其中$class_name是我在VelocityContext中設置的變量,如下所示。

VelocityContext velocityContext = new VelocityContext();
velocityContext.put("class_name", "Short");

但是,這個會在output下面,沒有變化。

void functionA() {
    int minimum_value = $class_name.MIN_VALUE;
    int maximum_value = $class_name.MAX_VALUE;
}

在點字符$class_name\.MIN_VALUE前添加反斜杠將替換變量,但它也會打印反斜杠,如下所示。

void functionA() {
    int minimum_value = Short\.MIN_VALUE;
    int maximum_value = Short\.MAX_VALUE;
}

escaping 不是用反斜杠完成的嗎? 我找到了多個答案,說它應該用反斜杠,其他人用$esc.java() ,但效果不佳。

您可以在class_name周圍使用花括號,例如:

## function.vm
void functionA() {
    int minimum_value = ${class_name}.MIN_VALUE;
    int maximum_value = ${class_name}.MAX_VALUE;
}

這會生成以下 output:

void functionA() {
    int minimum_value = Short.MIN_VALUE;
    int maximum_value = Short.MAX_VALUE;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM