1

我有以下地图,其中包含一些要在模板中使用的属性

Map<String,String> attributes = new HashMap<String,String>();
attributes.put("attr1.val","foo"); 
attributes.put("attr2.val","bar");

在模板中,如果我这样引用它们:

<b>$attr1.val$: $attr2.val$</b>

StringTemplate 假定我正在取消引用 attr1 上的属性。转义点 ( $attr1\.val$) 似乎也不起作用。该文档似乎没有提供有关如何或是否可能的线索。

我是否只需将分隔符更改为点以外的内容?

4

2 回答 2

3

浏览手册,这包含在困难的属性名称下:

由于与内置关键字冲突或因为它们与字符串模板使用的 ID 规则不匹配,某些属性名称会导致解析错误。这些难以处理的属性名称可以通过引用属性名称并结合间接属性构造来处理:

$person.("first")$ --- 内置关键字

$person.("1")$ --- 不符合 ID 的名称

处理地图时很可能会出现难以命名的属性。映射键可以使用任意字符串定义,包括用于定义模板本身的空格和语法字符。

于 2012-06-07T22:27:53.850 回答
0

我想更改分隔符将是最简单的。StringTemplate 在 $'s 中没有转义机制。

于 2012-06-07T21:25:49.487 回答