[英]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.